【发布时间】:2018-05-02 11:09:29
【问题描述】:
我正在使用 Cloud Firestore (NoSQL) 为以下用户存储个人资料信息:
{
"uid": "abc123",
"name": "...",
"friends": [
"uid": "x234",
]
...
}
现在我想知道如何构建从用户到用户的直接聊天。我正在考虑:
为每个用户文档添加一个附加字段,例如:
"chats": [
{
"from": "name",
"message": "...",
...
},
...
]
或者,我考虑使用具有类似结构的 Firebase 实时数据库,而不是使用 Firestore 进行聊天。
最后一种方法的好处是,用户文档不会因大量聊天协议而“臃肿”。
我需要一些建议,以便结构/实现最适合这个用例。
【问题讨论】:
-
假设用户有一个他们可以查看的“朋友”列表。您可以对列表进行编程,当用户单击朋友时,代码会从 Firebase 中获取该“朋友”的 uid。然后,用户可以向该 uid 发送直接消息。接收者节点结构将有一个消息子节点,其中包含发送者 uid、消息和日期。然后,您可以使用 ListView 呈现直接消息。如果你愿意,我可以给你举个例子。
-
据我了解,这类似于我的第一种方法?一个例子会很有帮助@SteveC。
-
您看过这个 Firebase 示例 here 了吗?用户在帖子上“喜欢”或“cmets”的方式与您在特定用户之间实现直接消息传递/聊天的方式完全相同。先看看那个代码,如果你还需要帮助,请告诉我。这正是我用来创建音频聊天应用程序(cb 收音机)的方法。 ;)
-
firebase 文档中很好地解释了如何构建 yoru 数据库:firebase.google.com/docs/database/web/structure-data
-
如果你还有兴趣,请看我编辑的答案,干杯!
标签: java android firebase firebase-realtime-database google-cloud-firestore