java Firebase数据库
我有一个用Firebase数据库制作的“聊天系统”
为了检索房间中的消息,我用Query
和orderByChild(timestamp)
进行了一次Query
操作,然后颠倒顺序,这样我就可以最后得到“最新的”消息(因为我从底部开始阅读)
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
- 时间戳由服务器完成
- 有人知道这可能是什么吗李>
更新
以下是数据库结构
- 框»对象(消息)
- 绿色»消息ID
- 蓝色»室友
共 (0) 个答案