首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现多个gets

实现多个gets
EN

Stack Overflow用户
提问于 2017-12-23 03:46:58
回答 2查看 2.4K关注 0票数 8

有谁知道如何在Fi还原事务中实现多个gets呢?

我有一个不知道长度的Firestore引用数组,保存在Firestore中。每个引用包含{count: number},我只想在每个引用中添加一个。要做到这一点,我很有信心我需要使用事务,而文档说我可以使用多个gets,但我不知道如何实现它。

我认为我需要获取每个引用,将现有的计数存储在数组中,在每个数组中添加一个,然后将它们全部保存回Firestore。每次我尝试实现这一点,我都失败了。我需要了解的可能只是在一个Firestore事务中使用多个get的例子,但是在文档中,或者在我所能找到的在线任何地方,都不存在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-07 18:48:26

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

我为您做了一个示例并对其进行了测试,只需遵循以下代码:

代码语言:javascript
复制
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中工作的信息,可以阅读文档

票数 8
EN

Stack Overflow用户

发布于 2018-04-16 20:37:36

Firestore没有这样说,但是答案隐藏在API引用中:https://cloud.google.com/nodejs/docs/reference/firestore/0.13.x/Transaction?authuser=0#getAll

您可以使用Transaction.getAll()而不是Transaction.get()来获取多个文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47949573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档