android - 使用 FirebaseRecycler 时如何从多个端点获取索引数据?
问题描述
我正在探索 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();
在这种情况下,我无法对用户数据进行反规范化,因为用户可能会更新他的姓名或照片,这应该会反映在他的所有聊天中。请建议我如何实现这一目标?我也对架构更改持开放态度。
解决方案
根据与 Firebase-UI 团队的讨论,尚不支持此功能。
推荐阅读
- php - 是否可以在 PHP 中翻译“试图获取非对象的属性”错误?
- php - 如何将下拉列表中选择的值传递给控制器然后保存
- r - 针对 4 个列表检查 data.frame 列(字符)
- reactjs - 如何在 React Native 中成功注册 Firebase 时导航到我的 HomeScreen?
- c++ - 在 C++ 中乘以 2 个大数有错误的结果
- c++ - 具有可变长度写入的多个生产者多个消费者无锁非阻塞环形缓冲区
- gitlab - 免费帐户的 GitLab 项目限制是多少?
- php - 未找到 Laravel 视图 5.2
- javascript - 将图像转换为 base64 时无法读取未定义的属性“宽度”?
- c# - 如何使用数据合同将模式版本号添加到 xml 中的节点?