gpt4 book ai didi

android - 批量更新会触发多少次 onUpdate 函数?

转载 作者:行者123 更新时间:2023-12-01 09:09:00 25 4
gpt4 key购买 nike

我想更新名为 recipes 的集合中文档中的两个字段,我使用了批量更新来完成它:

let recipeRef = db.collection('recipes').doc(`${recipeId}`);
let batch = db.batch();
batch.update(recipeRef, {ratingsCount : admin.firestore.FieldValue.increment(1)});
batch.update(recipeRef, {totalRating : admin.firestore.FieldValue.increment(snap.data().rating)})
return batch.commit();

我在 recipes 集合上有一个触发函数,如下所示:

exports.RecipeUpdated = functions.firestore
.document('recipes/{recipeId}')
.onUpdate((change, context) =>
{
//code
});

我的问题是因为在上面的批处理中有两个更新,这是否也会触发 onUpdate 函数两次或者因为批处理写入是原子完成的,触发器将只被调用一次?我希望触发器只被调用一次。

最佳答案

正如@DougStevenson 在他的评论中提到的,您应该只运行代码并查看行为。但请注意,即使您使用相同的 recipeRef,您也会在您的批处理中创建两个不同的更新。在这种情况下,您将得到的结果是 onUpdate() 将触发两次。

如果你只想被调用一次,那么你应该创建两个不同的更新,你可以创建一个。 update()函数允许您传递多个可以更新的属性。如果您使用的是对象,而不是简单地获取对文档的引用、获取它、进行更改并将其写回。

关于android - 批量更新会触发多少次 onUpdate 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58481952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com