如何与Firestore进行廉价联接?
在Firebase中,我会.map()响应并根据存储在每个项目上的外键获取其他数据。但是,考虑到每次读取支付的Firestore的定价模型,此似乎太贵了。你觉得怎么样?
在我的情况下,我的关系是针对少数几个类别(约5 - 7)的许多行为。每个动作都属于一个类别。
这种情况的最佳做法是什么?我应该像Firebase一样继续这样做吗?或者我应该独立获取两个集合并在Javascript中加入它们吗?
的Jakub
PS你如何实际使用参考数据类型?遗憾的是,文档中未对此进行描述。
答案 0 :(得分:9)
如您所述,Cloud Firestore会对每个读取的文档收费。这取决于您进行查询时返回给您的文档数。您为获取文档而提出的请求数量并不重要(假设每个请求返回> = 1个文档)。因此,执行map()
方法比获取所有文档并将它们连接到内存中更便宜,因为您将从后端读取更少的文档。
如果您分享有关数据模型的更多信息(我无法想象它),可能有办法通过复制某些数据或利用查询来减少连接的需要。