假设我有一个文档A.我有一个云函数,它监听文档A中的更新.一旦文档A更新,云函数就会触发并更新文档A.因此,文档A也会被云函数更新.这个更新会不会再次触发云函数,从而循环运行?

推荐答案

我有一个云功能,可以监听(A)文档中的更新...云函数还更新文档(触发了它).

此更新是否会再次触发云函数,从而在 循环播放?

是的,文档更新通过云函数完成,并再次触发云函数,因为您将其定义为在每次更改时触发(使用onUpdate()onWrite()).

为了避免无限循环,您应该将值change.after.data()(即新的字段值)与值change.before.data()(即触发Cloud函数之前的字段值)进行比较,并决定是执行Cloud函数的业务逻辑还是不执行任何操作就退出Cloud函数.

不要忘记,上面提到的两个数据对象可能会以不同的顺序与它们的属性一起返回.请参见Object comparison in JavaScript.

Javascript相关问答推荐

如何编辑代码FlipDown.js倒计时?

无法将nPM simplex-noise包导入在JS项目中工作

可以的.是否可以在不预编译的情况下使用嵌套 Select 器?

fs. writeFile()vs fs.writeFile()vs fs.appendFile()

为什么我的列表直到下一次提交才更新值/onChange

当试图显示小部件时,使用者会出现JavaScript错误.

Regex结果包含额外的match/group,只带一个返回

如何在JavaScript文件中使用Json文件

Eval vs函数()返回语义

第二次更新文本输入字段后,Reaction崩溃

确保函数签名中的类型安全:匹配值

JavaScript不重定向配置的PATH

当从其他文件创建类实例时,为什么工作线程不工作?

如何为仅有数据可用的点显示X轴标签?

基于产品ID更新条带产品图像的JavaScript命中错误

如何组合Multer上传?

Reaction useState和useLoaderData的组合使用引发无限循环错误

如何使用useparams从react路由中提取id

Reaction路由v6.4+数据API:重试加载程序而不显示错误

在AgGrid中显示分组行的单元格值