创建集合(而非“文档”)时是否可以触发Firebase云功能?

时间:2020-02-04 06:10:04

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

我正在尝试实现一个方案,即在创建集合时,firebase仅触发一次,而不是在将文档添加到集合中时触发。假设我只希望它触发添加到集合中的第一个文档,而不触发添加到同一集合中的所有其他文档。那怎么办?请帮忙!!!

2 个答案:

答案 0 :(得分:0)

云功能没有此类触发器。触发路径必须恰好指定一个文档,或者使用通配符指定可能与许多文档匹配的路径。

如果您想知道集合包含第一个文档的内容,则必须:

  1. 维护该集合中的文档数量(也许在另一个集合中的另一个文档中),并在该值从0变为1时触发该值的更改。
  2. 查询集合中刚刚创建文档的所有文档的所有,以便确定它是否是第一个文档。

这两个都需要大量额外的代码-对于任意集合正确实现非常不容易。它们也可能在重负载下遇到问题。如果这些选项都不适合您,我建议您想出另一种方法来使您的功能在正确的时间触发。

答案 1 :(得分:-1)

虽然不可能直接做。您可以检查collection是否包含任何元素,如果包含,则表明它存在。

const result =await firestore.collection("collection").limit(1).get()
if(result.size){
  // Collection exists
}