Firestore:加入与 Firestore 定价
Firestore: Joins vs Firestore pricing
如何使用 Firestore 执行廉价连接?
在 Firebase 中,我会 .map() 响应并根据存储在每个项目上的外键获取附加数据。但是,考虑到您按读取次数付费的 Firestore 定价模型,这 似乎 太贵了。你怎么看?
就我而言,我的关系是对少数几个类别(大约 5 - 7)的许多操作。每个动作属于一个类别。
这种情况的最佳做法是什么?我应该像在 Firebase 中那样继续这样做吗?或者我应该独立获取两个集合并将它们加入 Javascript?
雅库布
PS 您实际上是如何使用引用数据类型的?不幸的是,文档中没有描述它。
如您所述,Cloud Firestore 会按读取的每个文档收费。这是基于您进行查询时返回给您的文档数量。您为获取文档发出了多少个请求并不重要(假设每个请求 returns >= 1 个文档)。因此,与获取所有文档并将它们加入内存相比,执行 map()
方法的成本更低,因为您将从后端读取的文档更少。
如果您分享更多关于您的数据模型的信息(我无法在脑海中描绘它),可能有一种方法可以通过复制一些数据或利用查询来减少对连接的需求。
如何使用 Firestore 执行廉价连接?
在 Firebase 中,我会 .map() 响应并根据存储在每个项目上的外键获取附加数据。但是,考虑到您按读取次数付费的 Firestore 定价模型,这 似乎 太贵了。你怎么看?
就我而言,我的关系是对少数几个类别(大约 5 - 7)的许多操作。每个动作属于一个类别。
这种情况的最佳做法是什么?我应该像在 Firebase 中那样继续这样做吗?或者我应该独立获取两个集合并将它们加入 Javascript?
雅库布
PS 您实际上是如何使用引用数据类型的?不幸的是,文档中没有描述它。
如您所述,Cloud Firestore 会按读取的每个文档收费。这是基于您进行查询时返回给您的文档数量。您为获取文档发出了多少个请求并不重要(假设每个请求 returns >= 1 个文档)。因此,与获取所有文档并将它们加入内存相比,执行 map()
方法的成本更低,因为您将从后端读取的文档更少。
如果您分享更多关于您的数据模型的信息(我无法在脑海中描绘它),可能有一种方法可以通过复制一些数据或利用查询来减少对连接的需求。