javascript - 谷歌云功能 | 每次为实时数据库触发另一个带有 onCreate 的函数时,都会调用带有触发器 onUpdate 的函数
问题描述
我的代码中有两个云函数:一个带有 onCreate,另一个带有 onUpdate 触发器,用于同一路径上的实时数据库。每当添加新数据时,也会调用带有 onUpdate 的函数。我怎样才能防止这种情况?
exports.createSdkUser = functions.database.ref("users/{app}/{user}").onCreate(async (snapshot, context) => {
...
});
exports.updateSdkUser = functions.database.ref("/users/{app}/{user}").onUpdate(async (snapshot, context) => {
...
});
解决方案
创建一个onUpdate()
函数就像为该文档设置一个观察者事件......如果添加或更改或删除任何数据,则该函数将被执行......您无法阻止这种情况的发生,但您可以设置应该在该函数上执行的内容以及不应该使用以下条件:
exports.updateSdkUser = functions
.database.ref("/users/{app}/{user}")
.onUpdate(async (snapshot, context) => {
snapshot.forEach((snap)=>{
if(snap.data().username) {
// Do this if there is certain data in my database (for example : username)
}else {
// else just return don't do anything
return;
}
})
});
推荐阅读
- python - PyO3 将 rust 结构转换为 PyObject
- docker - docker 容器中的 Tomcat webapp 不运行
- django - django ContentType 选择模型和实例
- laravel - SameSite 设置为无,但无论如何都会阻止 cookie
- javascript - 我对前端的响应为空,但在控制台中返回正常
- python - 错误:当我使用 faceswap 从 Mp4 中提取图像时无法构建程序 kernel_c1_sdk_1
- javascript - 最大化组合组以使用所有值
- c++ - C++ 宏在自定义偏移量处设置类字段
- windows - Registry conflict between file association and file preview handler
- docker - 无法再启动任何 docker 容器