为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

杨__羊羊 2021-11-24 15:18:50
我写这封信,我需要检查,如果两个用户聊天应用程序u1,并u2有一个以前的对话或没有。如果有,则检索conversationId消息并将消息发送到该端点。否则,创建一个新对话。我的数据结构看起来像这样。userconversations:    userId1:        conversationID1:            participants:                user1: true                user2: true         conversationID2:             participants:                user1: true                user7: true在我的应用程序中,我想从userconversations/userId1列表中读取所有数据并遍历列表以确定是否user2是对话的一部分。我的问题是如何设计我的类,以便快速反序列化这些数据并避免使用getChildren()调用对其进行迭代?如果我规范化数据并保留不同的conversationId -> participants映射,那么对于每个对话 ID,我将不得不查询该流以获取数据。假设用户可以进行 100 次对话,这将非常缓慢且占用大量资源。请随时提出解决我的目的的替代模式设计。
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

由于键user1,user2user7是动态的,它们不能自动序列化为 POJO 的属性。您能做的最好的事情是使用 GenericTypeIndicator 或 cast:获得一个Map<String, boolean>from 。participants(Map<String, boolean>)snapshot.child("participants").getValue()


查看完整回答
反对 回复 2021-11-24
  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信