使用FirebaseRecycler时如何从多个端点获取索引数据?

时间:2018-11-19 05:42:58

标签: android firebase firebase-realtime-database firebaseui

我正在探索FirebaseUI,以构建一个聊天列表,该列表显示用户的所有聊天列表以及最后一条消息以及参与者的姓名和个人资料图片。我的数据模型如下所示:

  users:
     userid1:
       name: MyName
       profilePicUrl: <here>
     userid2:
       name: HisName
       profilePicUrl: <here>

   userchats:
      userid1:
         chatgrp1
         chatgrp2

   chatgroups:
      chatgrp1:
        participants: <userId2>
        lastMessage: "This..."

我可以使用索引查询来获取用户的聊天组列表,然后获取每个用户的内容。但我也需要参与者的姓名和个人资料照片。我无法弄清楚如何使用firebaseUI做到这一点。使用FirebaseUI可以做到这一点吗?

我目前正在做这样的事情:

Query keyQuery = FirebaseDatabase.getInstance()
            .getReference()
            .child("userchats/userid1");

    DatabaseReference dataRef = FirebaseDatabase.getInstance()
            .getReference("chatgroups");

    FirebaseRecyclerOptions<FirebaseConversationRecord> options = new FirebaseRecyclerOptions.Builder<FirebaseConversationRecord>()
            .setIndexedQuery(keyQuery, dataRef, FirebaseConversationRecord.class)
            .build();

在这种情况下,我无法对用户数据进行规范化,因为用户可能会更新其姓名或图片,并且所有聊天记录都应对此进行反映。请提出我该如何做到这一点?我也愿意更改架构。

1 个答案:

答案 0 :(得分:0)

根据与Firebase-UI团队的讨论,尚不支持此功能。

https://github.com/firebase/FirebaseUI-Android/issues/1534