显然,我们的云功能所触发的一些onCreate/onDelete事件被多次接收!我们观察到它们在云函数的实例之间传播,甚至相隔几秒钟到达3次。这是正常的行为还是我们做错了什么?
看看我粘贴在下面的"Firebase Google Group"帖子的内容。它写于2018年8月,但在撰写"复制/粘贴答案"时仍然完全有效。
云功能通常保证您的函数"至少运行一次",这意味着事件很有可能(但通常很罕见(交付给您的功能不止一次。为了解决这个问题函数应该是"幂等的",这意味着对相同函数的接收多次事件不应导致对任何内容的进一步更改你需要更新。这可能有点挑战性,但需要处理的无服务器系统的属性之一如果它对你的应用程序有问题。
https://cloud.google.com/functions/docs/bestpractices/tips#write_idempotent_functions