Firebase多级子查询Android

时间:2018-11-10 14:53:23

标签: android firebase firebase-realtime-database firebaseui

如何获取用户包含特定Uid的所有聊天

 Query sItemQuery = mDatabase.getReference().child("chats").limitToLast(200);

        FirebaseRecyclerOptions<ChatMetaData> options =
                new FirebaseRecyclerOptions.Builder<ChatMetaData>()
                        .setQuery(sItemQuery, ChatMetaData.class)
                        .setLifecycleOwner(this)
                        .build();

This is my DB Structure

1 个答案:

答案 0 :(得分:2)

您不能像这样跨多个级别进行查询。参见Firebase Query Double Nested

因此,虽然您当前的数据结构可以轻松地在聊天中查找当前用户,但并不能轻松地为用户查找当前聊天。

为此,您需要添加其他数据结构。像这样:

user_chats: {
  uid1: {
    chatid1: true,
    chatid2: true
  }
  uid2: {
    chatid2: true,
    chatid3: true
  }
}

使用此附加结构,您可以通过阅读/user_chats/$uid轻松找到当前用户的聊天记录。

另请参阅: