Firebase DB 에서 데이터를 받아서 -> Adapter -> recyclerView 로 보여주고 있는데요,
예를 들어 DB내에 이런식으로 저장이 되어있을때,
test_chat
-TAEK
-KpAk9snThbMZWmMCFpo
- msg: 얍
- name: 사자
-KpAk9snThbMZWmMCFpo
- msg: 얍
- name: 호랑이
이 상태에서 제가 "토끼"를 입력하고 입력한 데이터를 DB에 저장한 후,
데이터를 addChildEventListener 로 통해 읽어들였을때,
recyclerView 에는
얍 : 사자
얍 : 호랑이
얍: 토끼
처럼 DB내에 이미 저장되어있는 다른 데이터들 까지 같이 읽게되는데요,
제 코드는
public void start_random_chat() {
mDatabase = FirebaseDatabase.getInstance().getReference("test_chat");
final DatabaseReference data = mDatabase;
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", value);
map2.put("msg", input_msg.getText().toString());
data.child(random_user).push().updateChildren(map2); <- 값 저장
items = new ArrayList<>();
adt = new AdapterActivity(RandomChatActivityTwo.this,items,R.layout.activity_random_two);
RecyclerView recyclerView=(RecyclerView)findViewById(R.id.activity_recycler);
LinearLayoutManager layoutManager=new LinearLayoutManager(RandomChatActivityTwo.this);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adt);
data.child(random_user).addChildEventListener(new ChildEventListener() {
@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) {
}
});
}
이런 식으로 되어있습니다. 제가 입력한 데이터만 받을려고 위에 밑줄 친 부분을
data.child(random_user).push().addChildEventListener(new ChildEventListener() {.......}
이런식으로 읽을려고 했는데, 아예 실행조차도 안됩니다;
어떻게 하면 DB에 있는 내용은 제외하고 제가 입력한 데이터만 받아서 올 수 있을까요???
답변 부탁드립니다!!