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