首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正确的用户对用户(和组)聊天应用的Firebase数据库布局?

正确的用户对用户(和组)聊天应用的Firebase数据库布局?
EN

Stack Overflow用户
提问于 2017-01-09 13:48:04
回答 1查看 1.6K关注 0票数 2

我试图理解使用Firebase数据库存储和检索用户对用户会话的最佳数据库结构,用于聊天应用程序(基于web)。

我的当前计划是为每个聊天提供自己的ID,它将通过组合两个聊天参与者的唯一Firebase ID (如UserID1_UserID2)来创建,例如:FQ5d0jwLQDcQLryzevBxKrP72Bb2_GSIbxEMi4jOnWhrZaq528KJKDbm8这个聊天ID将存储在数据库中,并包含在两个参与者之间发送的消息。

示例布局:

代码语言:javascript
运行
复制
MYAPP
    |_______conversations
    |                   |_____UserID1_UserID2
    |                   |                   |
    |                   |                   |__OshwYF72Jhd9bUw56W7d
    |                   |                   |                     |__name:"Jane"
    |                   |                   |                     |__text:"Hello!"
    |                   |                   |
    |                   |                   |__KbHy4293dYgVtT9pdoW
    |                   |                   |__PS8tgw53SnO892Jhweh
    |                   |                   |__Qufi83bdyg037D7RBif
    |                   |                   |__Gicuwy8r23ndoijdakr
    |                   |
    |                   |_____UserID5_UserID16
    |                   |_____UserID8_UserID7
    |                   |_____UserID3_UserID8
    |
    |_______users

每当用户登录应用程序时,他们都会看到他们的联系人列表。当他们选择一个聊天时,我会使用一些Javascript来组合他们的聊天记录,以及他们选定的朋友的Firebase ID来生成聊天ID。然后,这个聊天ID将被创建在数据库中(如果这是他们第一次聊天),或者用来从数据库加载他们以前交换过的消息(如果他们以前曾经聊天过)。

我的问题是,这是否正确的方法?如果使用此方法,可能会遇到哪些问题?例如,如果我试图在未来实现小组对话(与2人以上),我会有问题吗?

对于使用Firebase/a no SQL数据库的人对人(和组)聊天应用程序来说,任何帮助或正确的数据库布局逻辑示例,我都会非常感激。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2017-01-09 15:24:03

我想指出的是,在创建NoSQL数据库时,需要考虑的最重要的“规则”之一是必须

在视图之后构造数据.

这意味着数据的结构必须是这样的,当您想在视图(可能是html页面)上显示它时,您只需进行一次读取。

因此,为了找到构建数据库的最佳方式,您必须首先查看您的视图。并尝试想象如何读取数据(直接读取和查询)。

您当前的结构看起来很好(就您现在正在构建的结构而言),是的,您在创建组聊天时可能会遇到一些问题。我建议使用这样的方法:

您将注意到,这样,您实际上可以添加更多的参与者,每次聊天很容易。请注意,这不应该是您唯一的节点。您必须创建其他节点,如用户(存储用户详细信息)和消息(存储每个聊天消息)等等,我建议您观看David East面向SQL开发人员的Firebase数据库

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

https://stackoverflow.com/questions/41549507

复制
相关文章

相似问题

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