firebase Firestore中集合和子集合之间的更好结构是什么?

polhcujo  于 2023-02-16  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在开发一个Flutter社交应用程序,其中有一个posts部分。每个post可以有comments,每个comment可以有replies,它们在类级别上与comment不同。我正在使用Firebase Firestore作为我的后端。正如Firestore的官方文档所指出的,有三种方法来构建我们的数据,如下所示:顶级集合、文档和子集合在我的应用中,对于posts,我有一个名为posts的顶级集合,它包含所有posts。现在每个post可以有数千个comments,因此,将comments作为Map值存储在每个post文档中并不是一个好主意,因为这将超过每个文档1 MB的限制,并且添加和删除comment也将非常困难。所以现在我不能决定是否应该在每个post文档中为comments创建一个顶级集合,还是为comments创建一个子集合。对于每个commentreplies也是如此。我是否应该再次创建另一个顶级-在每个comment文档中为replies指定一个级别集合还是replies的子集合?非常感谢您的建议和帮助!

ct2axkht

ct2axkht1#

因此,现在我无法决定是否应该为每个post文档中的评论创建一个顶级集合或一个子集合。
从技术或性能Angular 来看没有差异,因为:

  1. Firestore查询的性能与结果集的大小成正比,而不是与数据集(即集合中的文档数量)成正比;
    1.通过“集合组”查询,可以查询所有集合中具有相同ID(即commentsreplies)的所有单据。
    主要的区别可能在于,在Firestore控制台中,您可以轻松地显示特定帖子的子集合。
    请注意,如果您选择commentsreplies的根集合,您不应该忘记在这些子文档中保存父文档ID,以便您可以查询与特定父文档对应的ID。

相关问题