【问题标题】:How to fetch indexed data from more than one endpoints when using FirebaseRecycler?使用 FirebaseRecycler 时如何从多个端点获取索引数据?
【发布时间】:2018-11-19 05:42:57
【问题描述】:

我正在探索 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();

在这种情况下,我无法对用户数据进行反规范化,因为用户可能会更新他的姓名或照片,而这应该会反映在他的所有聊天中。请建议我如何实现这一目标?我也对架构更改持开放态度。

【问题讨论】:

  • 如果您想在某个时候尝试Cloud Firestore,您可以在此处找到有关如何创建完整且实用的Chat App 的教程。同时,如果不想对您的数据进行反规范化,那么您应该只保留引用,但这意味着额外的数据库调用。请参阅 here 了解有关优缺点的更多详细信息。

标签: android firebase firebase-realtime-database firebaseui


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2019-01-02
    • 2013-04-01
    • 2020-03-25
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多