如何在android中获取firebase数据库中最近添加的消息

如何在android中获取firebase数据库中最近添加的消息,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试从数据库中获取最近添加的消息。但每当我获取这些消息时,所有消息都显示在recyclerview中。我只想显示最近添加的消息。 //这是我的密码- mFirebaseDatabase = FirebaseDatabase.getInstance(); mDbReference = FirebaseDatabase.getInstance().getReference(); final DatabaseReference uidRef = mDbRefere

我正在尝试从数据库中获取最近添加的消息。但每当我获取这些消息时,所有消息都显示在recyclerview中。我只想显示最近添加的消息。 //这是我的密码-

mFirebaseDatabase = FirebaseDatabase.getInstance();
        mDbReference = FirebaseDatabase.getInstance().getReference();
        final DatabaseReference uidRef = mDbReference.child("users").child(currentUser).
                child(selectedUser).child(ChatMessageModel.MSG_TYPE_RECEIVED);
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    ChatMessageModel chatMessageModel = ds.getValue(ChatMessageModel.class);
                    messageList.add(chatMessageModel);
                }
                chatAppMsgAdapter.notifyDataSetChanged();
                mRecyclerview.setAdapter(chatAppMsgAdapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d(TAG, "onCancelled: ");
            }

        };
        uidRef.addValueEventListener(valueEventListener);




     //here output like this - 

编辑:添加了解释

通过使用
uidRef
中的引用,您正在检索firebase路径的该节点中的所有数据

要检索添加到数据库中该节点的最后一个数据,应添加.limitToLast(1)方法

检查

此外,由于您只检索一个数据,因此不需要迭代,因此删除了forEach循环

mFirebaseDatabase = FirebaseDatabase.getInstance();
                    mDbReference = FirebaseDatabase.getInstance().getReference();
                    final DatabaseReference uidRef = mDbReference.child("users").child(currentUser).
                            child(selectedUser).child(ChatMessageModel.MSG_TYPE_RECEIVED);
                    ValueEventListener valueEventListener = new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            ChatMessageModel chatMessageModel = ds.getValue(ChatMessageModel.class);
                            messageList.add(chatMessageModel);
                            chatAppMsgAdapter.notifyDataSetChanged();
                            mRecyclerview.setAdapter(chatAppMsgAdapter);
                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {
                            Log.d(TAG, "onCancelled: ");
                        }

                    };
                    // Add the .limitToLast(1) query function or replace with the
                    // limitToFirst(1) if .limitToLast(1) didn't work
                    uidRef.limitToLast(1).addValueEventListener(valueEventListener);

通过最近添加的
消息
,您的意思是什么?请同时添加您的数据库结构。