有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Firebase数据库

我有一个用Firebase数据库制作的“聊天系统”

为了检索房间中的消息,我用QueryorderByChild(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) 个答案