• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

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;

@Override

protected 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문만 실행됩니다.

답변 1

답변을 작성해보세요.

0

제가 이렇게 작성하시면 확인을 할 수가 없습니다. 유튜브에 원본소스 링크가 있으니 원본 소스와 비교를 해보시면 좋을 뜻 싶습니다!