我希望Cloud Function仅在创建和更新文档时触发。我不希望云功能触发onDelete
。
是否只有onCreate
和onUpdate
的触发器没有make 2单独的功能?
我看到Firebase有onWrite
,但此触发器也有onDelete
:
onCreate在首次写入文档时触发。
onUpdate当文档已经存在并且具有任何值时触发
已更改。 onDelete在删除包含数据的文档时触发。
onWrite在触发onCreate,onUpdate或onDelete时触发。
谢谢大家!
答案 0 :(得分:1)
没有组合触发器,因此您需要为此声明两个Cloud Functions。
但是您可以在单个常规函数中实现实际的逻辑,然后从两个Cloud Functions中调用它。
类似
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate((snap, context) => {
doTheThing(snap, context);
});
exports.updateUser = functions.firestore
.document('users/{userId}')
.onUpdate((change, context) => {
doTheThing(change.after, context);
});
function doTheThing(snapshot, context) {
...
};
答案 1 :(得分:1)
您可以对处理程序使用onWrite侦听器,该处理程序在删除的情况下不执行任何操作。
exports.myFunction = functions.firestore
.document('/abc/{docId}')
.onWrite((change, context) => {
// Exit when the data is deleted.
if (!change.after.exists()) {
return null;
}
//TODO: put code here you want to execute for create and update
});