为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确使用 Firestore

如何正确使用 Firestore

侃侃尔雅 2022-01-13 16:32:44
我想知道什么更好:该示例是一个购物应用程序,它与主屏幕有关,其中包含每个可用项目的列表。A) 一个文档,例如“productList”,其中每个类别都有一个 Map,然后是另一个包含每个 productId 的 Map,以及一个包含产品标题、展示图像和价格等数据的列表。示例代码: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 会节省很多产品读取,但如果该方法可能存在问题,则提出问题)非常感谢你 :)
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

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

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


查看完整回答
反对 回复 2022-01-13
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信