我需要获取其ID不是Firebase DataRealtime中对象的主键的ID的消息对象。我该怎么办?
这是一个聊天应用程序,用于学习Firebase。我可以使用the docs中的信息来获取所有消息。
但是我不知道如何使用userid=1
来获取消息。
我的Firebase数据:
message
-LVr5ctrnbRXtZ7lxcL1
text: "Hello nice to meet you"
time: 1547112680605
userid: 2
-LVr5msnECOEfsghjMZn
text: "i'm here\nwho are u"
time: 1547112721497
userid: 1
-LVrCX797YRZVg2qPBIS
text: "hi\n"
time: 1547114487906
userid: 1
-LVrNWDwE-jOPMzUX4zY
text: "hahaa"
time: 1547117401142
userid: 3
-LVunQcfAJW4yCYtPWzp
text: "hoho"
time: 1547174787733
userid: 1
我当前的代码:
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessageDatabaseReference = mFirebaseDatabase.getReference().child("message/userid");
Query queryget=mMessageDatabaseReference.equalTo(1);
mChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
FriendlyMessage friendlyMessage=dataSnapshot.getValue(FriendlyMessage.class);
mMessageAdapter.add(friendlyMessage);
}
queryget.addChildEventListener(mChildEventListener);
我想获取包含userid=1
的邮件列表,但我只会收到null
。
答案 0 :(得分:0)
您的孩子参考不正确。在您的情况下,您应该将所有消息作为对象,然后在userId = 1时对其进行排序。
您可以执行以下操作:
mMessageDatabaseReference = mFirebaseDatabase.getReference().child("message");
Query queryget = mMessageDatabaseReference.orderBy("userid").equalTo(1);