【发布时间】:2018-06-03 02:38:45
【问题描述】:
我想问在开发聊天应用程序时是否有 Firestore 的最佳实践,以及为聊天室存储消息的最佳实践是什么。
这里的假设是每个聊天室都有自己的文档。
我开始使用数组来存储来自用户的消息。这种方法的问题在于,每次向聊天室提交新消息时,无法添加插入(附加)新条目。必须保存附加新消息的数组的新副本。除非聊天记录被分成子数组等,否则这看起来会非常糟糕。
在官方文档中,他们建议了一种结构,其中应该将特定聊天室的消息作为单独的文档存储在该聊天室的子集合中。我想知道这种方法是否最好,会有哪些缺点,或者是否有另一种首选方法。
【问题讨论】:
-
将聊天室的所有消息存储到单个文档中会很快将您带到大于允许大小 1MB 的文档。如this blog post 中所述,在多用户环境中使用数组是个坏主意。为每条聊天消息使用单独的文档似乎是最简单的。鉴于文档也引导您朝那个方向发展,您为什么认为另一种方法更好?
-
不,你是对的,我只是没有使用 nosql 数据库的经验,而且我发现很多事情都来自 mysql 背景的直觉
标签: javascript arrays firebase google-cloud-firestore