使用Firebase函数在Firestore查询中创建JOIN

时间:2019-05-26 21:04:28

标签: firebase google-cloud-firestore google-cloud-functions

根据this的答案,Firestore引用不能用于类似JOIN的查询,即,在一个数据库往返中检索引用文档和被引用文档。这可能是一个性能问题,因为网络延迟成本适用于每个数据库往返。

只有在您不靠近数据中心的情况下,网络延迟才是问题,这意味着如果您在服务器端进行连接,即在运行Firestore的Google数据中心中进行操作,那应该不是问题。

我们可以使用Firebase函数以一般方式实现此功能吗?我正在考虑在Firebase Functions中实现的一项服务,该服务位于客户端和数据库之间。大多数查询只是传递到数据库(whereorderBylimit等仍然必须可行),但是应该有一个附加的populate: true查询参数。如果存在此参数并将其设置为true,则也会返回引用的文档。

也许还需要指出哪些文档应该populate d。

1 个答案:

答案 0 :(得分:2)

当然,您可以尝试一下。即使您没有将太多文档返回给客户,您仍然可以期望为使用任何查询而阅读的所有文档付费。

如果确实有很多要执行的联接,通常最好预先计算另一个集合中的联接,然后让客户端查询。然后,您可以利用客户端具有本地缓存​​的优势,这有助于提高速度和成本。

但是,如果您需要的话,并没有阻止您实现此功能的功能。