当前位置: 首页 > 知识库问答 >
问题:

用于聊天应用程序的Firebase数据结构

须曜文
2023-03-14

我希望基本上在我的应用程序内翻拍Kik。对于我在firebase聊天应用程序上看到的大多数指南,都有一个主要的消息节点,然后在该节点下面有一个扇出,每个用户都有引用主列表中消息的消息

根据目前我的Firebase的布局方式,实现类似以下内容会更容易:

users
   chatPartners
        02834092890428
           chatMessages
               2093840923840923
                   timestamp/userUID/etc.

因此,当用户向对方发送消息时,我会更新发送者和用户下面的“聊天消息”节点。

有什么理由不这样做吗?我看到每个人都按照我描述的第一种方式进行,但我看不出为什么将每个聊天存储在用户-->chat Partner-->聊天日志下会是一个问题。

共有1个答案

钱渊
2023-03-14

您可能遇到的唯一问题是如何调用数据。请注意,当您调用“聊天日志”时,因为它是“用户”和“聊天伙伴”的子项,所以您将调用该分支中所有内容的数据,本质上是在“用户”下加载数据库中的每一段数据,这对时间和性能都很敏感。

 类似资料:
  • 我正在构建一个使用Firestore存储大多数数据的应用程序。该应用程序具有聊天功能,我正在考虑使用实时数据库。使用Firebase Firestore vs Realtime Database实现此聊天功能有哪些好处?如果没有区别,我应该什么都使用Firestore吗? 附言:我已经阅读了两个https://firebase.google.com/docs/database/rtdb-vs-fi

  • 我试图创建一个“一对一的防火墙数据库Android聊天”。到目前为止是通过使用下面的结构工作的。大字符串表示user_TO_user,KW记录是聊天消息。 从Android活动中显示特定用户的会话列表,我创建了一个ListView并使用以下命令从Firebase中读取该列表: } 更新:所以,根据VZSG的回答,更好的结构可能是: 味精 a_to_b msg1 msg2 msg3 msg1 msg

  • 我尝试使用mvp开发一对一的聊天应用程序,当应用程序第一次运行时,聊天工作正常,消息发送给用户。问题是,当我尝试注册另一个帐户并尝试发送消息时,firebase创建了两个不同的聊天室,但我无法获得消息,因为第二个用户没有检测到聊天室已经创建并创建了另一个聊天室,请帮助我?这是我试图发送消息的代码: 最终字符串room_type_1=chat.getSenderUID()+“_”+chat.getR

  • 我很难弄清楚如何正确地构造多用户聊天室体系结构。 基本上,该应用程序支持用户之间的私人消息(可以是两个用户之间的消息,也可以是多个用户之间的消息)。如果只在2个用户之间,数据结构真的很容易。 我试图降低成本(我不希望当当前登录的用户正在与某人聊天,而观察者正在获得与该特定聊天无关的所有消息时),并正确地构造数据。如果只有2个用户,我总是可以在当前用户ID下添加受体,并只查询该节点。但是有多个用户(

  • 问题内容: 我想知道为数千名用户编写聊天应用程序的正确方法是什么。 我只是感到困惑,我如何才能每秒使用AJAX或更少的方法来对服务器执行ping操作,并检查MySQL中是否有新记录等,并且服务器负载可以接受。 我目前正在考虑使用jQuery,PHP和MySQL进行编码。 请指教。您的帮助将不胜感激。 问题答案: 客户端 对于需要轮询服务器的任何程序,我建议使用WebSockets。 我写了一个非常