子集合中的更改是否应该触发onWrite函数?

时间:2018-02-09 06:38:53

标签: firebase google-cloud-firestore

当函数正在侦听顶级文档时,subcollections的更改是否可以触发Firebase功能?如果不是,documentation的通配符示例中的第一行是什么意思?

这是什么意思???如果子集合发生变化会触发该功能吗? 但它似乎并不在同一页面的其他地方也这样说。

// Listen for changes in all documents and all sub-collections

...

exports.useWildcard = functions.firestore
  .document('users/{userId}')
  .onWrite((event) => {
    // If we set `/users/marie` to {name: "marie"} then
    event.params.userId == "marie"
    // ... and ...
    event.data.data() == {name: "Marie"}
  });

Firestore和函数触发器的预期行为是什么?

2 个答案:

答案 0 :(得分:2)

我认为示例代码中的注释对于文档通配符为的示例不正确:

'users/{userId}'

请注意,在该示例下面的文字中说:

  

如果用户中的文档具有子集合,并且其中一个中的字段具有子集合   子集合的文档已更改,userId通配符   触发。

下面的示例包含以下通配符:

'users/{userId}/{messageCollectionId}/{messageId}'
只有当users中的任何文档子集合中的文档被写入时才会触发

(不是users内的文档)。

您可以免费file a bug report获取您认为不正确的文档或样本。

答案 1 :(得分:0)

在云端功能中,您有4个触发器:

onWrite
onCreate
onUpdate
onDelete

您正在谈论的是onWrite,并且每当您指定的位置发生任何更改时都会触发,在您的情况下此位置:

.document('users/{userId}')

如果您只是想在向集合添加任何内容时触发它,那么最好使用onCreate触发器。