我使用Cloud (NoSQL)为用户存储配置文件信息,如:
{
"uid": "abc123",
"name": "...",
"friends": [
"uid": "x234",
]
...
}
现在,我想知道如何构建用户之间的直接聊天。我想要么是:
为每个用户文档添加一个附加字段,如:
"chats": [
{
"from": "name",
"message": "...",
...
},
...
]
或者,我考虑使用具有类似结构的Firebase实时数据库,而不是使用Firestore进行聊天。
最后一种方法将带来好处,即用户文档不会因大量的聊天协议而“膨胀”。
我需要一些建议,这些建议的结构/实现方式最适合这种用法。
发布于 2017-11-19 12:11:39
当您开始构建一个应用程序时,首先您需要考虑最适合它的数据库。如果您想一想Firestore,您需要知道client对于每秒执行大量小读写操作的应用程序的定价模型可能比实时数据库中类似执行的应用程序要昂贵得多。
这两个数据库之间也有一些差异。如果您想继续使用Firebase实时数据库,您需要知道您不能查询多个属性,而且它通常涉及复制数据或客户端过滤,在某些情况下这是一种混乱。实时数据库不会自动缩放,而Firestore则会自动缩放。
关于如何构造聊天应用程序的数据库,您需要知道没有一个完美的结构可以这样做。您需要以一种非常简单和高效的方式来构造数据库,使您能够轻松地读写数据。Firebase 正式文件解释了如何为聊天应用程序构建数据库。如果你想要更复杂的东西,请阅读这篇文章,正确构造复杂应用程序的Firebase数据。
为了更好地理解,我建议您也参加免费的Firebase课程,周末火场: Android。
所以由你来决定哪一个对你更好。
P.S:如果您感兴趣,我还在我的教程中解释了如何使用Cloud和Kotlin创建聊天应用程序。
https://stackoverflow.com/questions/47371561
复制相似问题