【问题标题】:Firestore: Storing user comments in firestoreFirestore:在 Firestore 中存储用户评论
【发布时间】:2020-12-04 18:05:25
【问题描述】:

假设您在 Firestore 中有一个“帖子”模型,其中包含图像、描述、评级、cmets 等。您希望在用户点击帖子时显示 10 或 15 个 cmets。问题是: 您会将 cmets 作为字段存储在“Posts”模型中,还是会为此创建另一个新的数据模型“Comments”? 在第一种情况下,我想知道如果帖子有 1.000.000 cmets,如何处理?据我所知,您无法对字段进行分页。每次你需要获取所有的 cmets 和我认为它有点沉重和无用的请求。存储 cmets 的最佳方式是什么?

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    您会将 cmets 作为字段存储在“帖子”模型中,还是会为此创建另一个新的数据模型“评论”?在第一种情况下,我想知道如果帖子有 1.000.000 cmets,如何处理?

    没有“100% 正确”的方法可以做到这一点,但您的建模应该符合预期用例的要求。在不知道如何查询这些数据的情况下,您可能会做出错误的设计决策。

    请注意,Firestore 文档的最大大小为 1MB。如果您期望有大量帖子,那么这根本不适合单个文档,您应该将每个帖子作为单独的文档存储在子集合中。

    如果您需要对任何项目进行分页,则应始终将它们存储为单独的文档。 Firestore 查询无法获取部分文档 - 读取始终获取文档中的所有内容。

    【讨论】:

      【解决方案2】:

      其实你自己已经回答了你的问题:)

      我会创建另一个数据模型/表,以便您更轻松地实现:

      • 分页
      • 删除/编辑
      • 喜欢
      • 对 cme​​ts 等的回答...

      这带来了更多的复杂性,但却是一种更优雅、更灵活的解决方案。

      第一个解决方案只有在不可能有​​ 100 万个 cmets 的情况下才有意义。例如在 Intranet 应用程序中。但最好不要这样做,因为努力其实是一样的。

      【讨论】:

        猜你喜欢
        • 2021-08-05
        • 2019-04-05
        • 2018-09-25
        • 2022-01-16
        • 2020-03-06
        • 2017-05-30
        • 2022-09-30
        • 2019-11-01
        • 1970-01-01
        相关资源
        最近更新 更多