gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:41:57 25 4
gpt4 key购买 nike

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

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

userconversations:
userId1:
conversationID1:
participants:
user1: true
user2: true
conversationID2:
participants:
user1: true
user7: true

在我的应用中,我想读取 userconversations/userId1 中的所有数据,并迭代该列表以确定 user2 是否属于对话的一部分。

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

如果我规范化数据并保留不同的 conversationId ->participant 映射,那么对于每个conversationid,我将必须查询该流以获取数据。鉴于一个用户可以进行 100 个对话,这将非常缓慢且占用大量资源。

请随时提出解决我的目的的替代架构设计建议。

最佳答案

自按键user1 , user2user7是动态的,它们不能自动序列化为 POJO 的属性。您能做的最好的事情就是获取 Map<String, boolean>来自participants使用 GenericTypeIndicator 或强制转换:(Map<String, boolean>)snapshot.child("participants").getValue() .

关于java - 如何轻松检索 Java 中聊天应用程序的嵌套 firebase 实时数据库数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52863426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com