gpt4 book ai didi

transactions - Firestore 事务,实现多次获取

转载 作者:行者123 更新时间:2023-12-04 03:58:11 25 4
gpt4 key购买 nike

任何人都知道如何在 Firestore 事务中实现多个获取?

我有一个长度未知的 Firestore 引用数组,保存在 Firestore 中。每个引用都包含 {count: number} 并且我只想为每个引用添加一个。为此,我非常有信心需要使用事务,并且文档说我可以使用多个获取,但我不确定如何实现它。

我想我需要获取每个引用,将现有计数存储在一个数组中,每个添加一个,然后将它们全部保存回 Firestore。每次我试图实现这一点时,我都失败了。在 Firestore 事务中使用多个获取的示例可能是我需要的全部内容,但文档中不存在,或者据我所知在线任何地方都不存在。

最佳答案

您必须使用 Promise.all 因为您需要迭代 arrayOfReferences 的每个 firestore 引用。

我给你做了一个例子并测试了它,只需按照下面的代码:

setCount(arrayOfReferences){
return this.db.runTransaction(t => {
return Promise.all(arrayOfReferences.map(async (element) => {
const doc = await t.get(element);
const new_count = doc.data().count + 1;
await t.update(element, { count: new_count });
}));
});
}

要了解有关 Firestore 中计数器如何工作的更多信息,您可以阅读 documentation .

关于transactions - Firestore 事务,实现多次获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949573/

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