제 db가 이런식으로 되어있는데요,
random_chat
- uid
- chat_room
-SOOK
-KohDZxXdBw6aFVuVI-V <- 이 부분이 push().getKey()로 자동생성된 부분인데
- msg: msg <- 아래 부분에 저장된 msg랑 name을 받고싶은데요 문제가 있습니다.
- name: name
-KohDaCOG7ep4Q2_h9ex
아래는 소스인데요,
mDatabase = FirebaseDatabase.getInstance().getReference("random_chat");
DatabaseReference data = mDatabase.child("uid").child("chat_room").child(random_user2);
key = mDatabase.push().getKey();
message_root =data.child(key);
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("name",value);
map2.put("msg",input_msg.getText().toString()); <-- 여기 까지는 작동이되어서 db에 저장이되는데,
message_root.updateChildren(map2);
data.child(random_user2).child(key).addChildEventListener(new ChildEventListener() {
<- 여기서 막혀서 넘어가질 않습니다. 여기서 child(key)를 빼주면 db에 저장된 모든 내용이 출력되구요, 저는 push() 밑에 msg와 name 값만 받아오고 싶은데 어떡해해야 할까요???
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
user_chat(dataSnapshot);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
user_chat(dataSnapshot);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}