-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
Comment가 안 만들어집니다.
18.09.23 17:04 작성 조회수 150
0
```package com.example.jun.myeongjuntalk.chat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.example.jun.myeongjuntalk.R;
import com.example.jun.myeongjuntalk.model.ChatModel;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MessageActivity extends AppCompatActivity {
private String destinationUid;
private EditText editText;
private String uid,chatRoomUid;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_message);
uid = FirebaseAuth.getInstance().getCurrentUser().getUid();//채팅을 요구한 아이디, 즉 사용자 본인 단말기 아이디
destinationUid = getIntent().getStringExtra("destinationUid");//채팅을 당하는 아이디
Button button = (Button) findViewById(R.id.meesage_btn);
editText = (EditText)findViewById(R.id.message_edt);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChatModel chatModel = new ChatModel();
chatModel.users.put("uid",true);
chatModel.users.put("destinationUid",true);
if(chatRoomUid == null){
Log.d(null,"되냐");
FirebaseDatabase.getInstance().getReference().child("chattingRoom").push().setValue(chatModel);
}
else{
Log.d(null,"되냐2");
ChatModel.Comment comment = new ChatModel.Comment();
comment.uid = uid;
comment.message = editText.getText().toString();
FirebaseDatabase.getInstance().getReference().child("chattingRoom").child(chatRoomUid).child("comments").push().setValue(comment);
}
}
});
checkRoom();
}
void checkRoom(){
Log.d(null,"checkRoom"); //중복
FirebaseDatabase.getInstance().getReference().child("chattingRoom").orderByChild("users/"+uid).equalTo(true).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot item : dataSnapshot.getChildren()){
ChatModel chatModel = item.getValue(ChatModel.class); //채팅방 테이블에 사용자와 대화상대의 uid를 가져옴
if(chatModel.users.containsKey(destinationUid)){
chatRoomUid = item.getKey();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
이 코드로 했을 때 , comment가 안 만들어집니다. 제가 볼 때는
elss 문이 실행이 안되는 거 같습니다. chattingRoomId값을 가져와도 자꾸 널 값으로 되서 자꾸 if문만 실행됩니다.
답변을 작성해보세요.
0
답변 1