我正在使用Firebase函数在发生某些事件(创建/更新/删除数据库中的记录)之后执行Realtime Database的其他更新,并触发另一个事件。有没有办法防止第二次事件?我知道如果满足条件我可以取消它,但我想阻止它第二次启动。
答案 0 :(得分:2)
无法阻止触发它的代码中的事件。这将容许任何人都不想要的漏洞。
您可以将触发器更改为不再响应更改。例如,您经常会看到函数只需要响应节点的创建而不是更新。在这种情况下,您可以将触发器绑定到onCreate
,而不是onUpdate
或onWrite
。
或者,您可以捕获函数本身的更新并绕过进一步的更新。例如,如果您有一个修改数据的函数,您可以通过在数据中使用flag属性或通过检测第二次没有更改来检测它已经修改了数据。在这种情况下,你会跳过重新更新。
请注意,第二种方法可以捕获更多情况,但会导致一次触发而非严格需要。所以如果可能的话,我总是更喜欢第一种方法。