我使用Firebase数据库制作了这个“聊天系统”。
要检索房间中的消息,我会Query
使用orderByChild(timestamp)
然后反转订单,这样我就可以获得最新的“最后”(因为我从底部开始阅读)。
messageList = new ArrayList<>();
final Query query = chatRef_1.orderByChild("
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
messageList.add(dataSnapshot.getValue(ChatMessage.class));
updateRecyclerView();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
messageList.remove(dataSnapshot.getValue(ChatMessage.class));
updateRecyclerView();
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但后来我得到了这个结果
ChildEventListener