假设我有一个文档A.我有一个云函数,它监听文档A中的更新.一旦文档A更新,云函数就会触发并更新文档A.因此,文档A也会被云函数更新.这个更新会不会再次触发云函数,从而循环运行?
假设我有一个文档A.我有一个云函数,它监听文档A中的更新.一旦文档A更新,云函数就会触发并更新文档A.因此,文档A也会被云函数更新.这个更新会不会再次触发云函数,从而循环运行?
我有一个云功能,可以监听(A)文档中的更新...云函数还更新文档(触发了它).
此更新是否会再次触发云函数,从而在 循环播放?
是的,文档更新通过云函数完成,并再次触发云函数,因为您将其定义为在每次更改时触发(使用onUpdate()
或onWrite()
).
为了避免无限循环,您应该将值change.after.data()
(即新的字段值)与值change.before.data()
(即触发Cloud函数之前的字段值)进行比较,并决定是执行Cloud函数的业务逻辑还是不执行任何操作就退出Cloud函数.
不要忘记,上面提到的两个数据对象可能会以不同的顺序与它们的属性一起返回.请参见Object comparison in JavaScript.