【问题标题】:How to use Firestore right如何正确使用 Firestore
【发布时间】:2020-03-23 07:32:14
【问题描述】:

我想知道什么更好:

该示例是一个购物应用程序,它是关于主屏幕的,其中包含每个可用项目的列表。

A) 一个文档,例如“productList”,其中每个类别都包含一个地图,然后是另一个包含每个 productId 的地图和一个包含产品标题、展示图片和价格等数据的列表。
示例代码:

Stream stream = db.collection('products').document('productList').snapshots().asyncMap((list) => list.data);

B) 一个名为“产品”的集合中的许多文档存储数据。
示例代码:

Stream stream = db.collection('products').where('category', isEqualTo: "CategoryName").snapshots().map((list) => list.documents.map((doc) => doc.data));

(两者都在工作,但使用 B 我得到了 3 个产品 muuuuch 更多文档读取,因此我认为 A 会节省大量产品读取,但如果该方法可能存在问题,则提出问题)

非常感谢:)

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    如果您采用第一种尝试将所有内容放入单个文档的方法,那么当产品数量变大时,您将遇到可伸缩性问题。 Firestore 文档只能包含 1MB 的数据。之后,对其的写入将失败,并且您将很难重组您的应用及其数据以解决问题。

    存储大量项目的唯一“正确”方法是为每个项目使用一个文档。例外情况是当您对项目数量有硬性保证,并且您绝对确定所有这些项目的数据始终可以放入一个文档中。

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 2022-06-27
      • 2019-09-12
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多