首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中轻松地为聊天应用程序检索嵌套的firebase实时数据库数据?

如何在java中轻松地为聊天应用程序检索嵌套的firebase实时数据库数据?
EN

Stack Overflow用户
提问于 2018-10-18 04:51:36
回答 1查看 74关注 0票数 0

我正在写一个聊天应用程序,我需要检查两个用户u1u2之前是否有过对话。如果有,则检索conversationId并将消息发送到该端点。否则,创建一个新对话。

我的数据结构看起来像这样。

代码语言:javascript
复制
userconversations:
    userId1:
        conversationID1:
            participants:
                user1: true
                user2: true
         conversationID2:
             participants:
                user1: true
                user7: true

在我的应用程序中,我希望读取userconversations/userId1中的所有数据并遍历列表,以确定user2是否是对话的一部分。

我的问题是,如何设计我的类,以便快速反序列化此数据,并避免使用 getChildren() 调用迭代它?

如果我规范化数据并保留不同的conversationId -> participants映射,那么对于每个会话i,我将必须查询该流以获取数据。假设一个用户有100个会话,这将是非常慢和资源密集型的。

请随时建议替代方案设计,以解决我的目的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 06:33:45

因为键user1user2user7是动态的,所以它们不能自动序列化到POJO的属性中。您能做的最好的事情就是从participants获取一个带有GenericTypeIndicator或cast:(Map<String, boolean>)snapshot.child("participants").getValue()Map<String, boolean>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52863426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档