【发布时间】:2017-05-23 19:14:54
【问题描述】:
我正在尝试了解使用 Firebase 数据库存储和检索用户对话的最佳数据库结构,用于聊天应用(基于网络)。
我目前的计划是为每个聊天提供自己的 ID,该 ID 将通过组合两个聊天参与者的唯一 Firebase ID(如 UserID1_UserID2)来创建,例如:FQ5d0jwLQDcQLryzevBxKrP72Bb2_GSIbxEMi4jOnWhrZaq528KJKDbm8 此聊天 ID 将存储在数据库,并将包含两个参与者之间发送的消息。
示例布局:
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/非 SQL 数据库的人对人(和群组)聊天应用程序的任何帮助或正确数据库布局逻辑示例,我将不胜感激。
提前谢谢你!
【问题讨论】:
-
另请参阅我们的sample apps,其中包括功能齐全的聊天。
标签: firebase firebase-realtime-database