Firebase函数更新实时数据库的触发器行为



我的代码如下所示:

exports.XXX = functions.database.ref("/global/tokenEarned")
.onUpdate(async (change, context) => {
let newValue = change.after.val();
const oldValue =   change.before.val()
if(oldValue !== newValue){
const diff = newValue - oldValue
const resp = await db.ref("/global").once("value")
const respData = resp.val()
await db.ref("global").update({"totalDivi" : respData.totalDivi + divi})
}
return null
})

正如你所看到的,我正在更新属性";totalDivi";每当另一个属性";tokenEarned"使用新值和旧值之间的差异进行更新。

这是意料之中的事。然而,在多人更新tokenEarned的值的情况下,这将如何工作?firebase队列中的上述函数调用的顺序值是否会被多个用户更新?

firebase将以上函数调用按顺序排队由多个用户更新?

不,不能保证执行会遵循任何顺序,比如事件触发的顺序。如果启动了几个服务器实例,云功能甚至可以同时并行执行。

根据您的具体使用情况,您可能需要寻求另一种解决方案。

最新更新