【问题标题】:Can't understand Firestore batch update - Flutter无法理解 Firestore 批量更新 - Flutter
【发布时间】:2020-09-01 21:49:37
【问题描述】:

看了Firestore官方的批量操作文档我的理解是,批量操作执行多个操作,可以同时更改多个文档。

但是,当我阅读官方 firestore 文档中的示例代码以获取更新时,它说:

var sfRef = db.collection("cities").doc("SF");
batch.update(sfRef, {"population": 1000000});

现在,我不明白他们为什么在尝试更新批次时给出特定文档的名称。我认为批处理操作的重点是更新集合中的多个文档,那么为什么我们要给出文档的名称并将操作仅限于单个文档。

提前致谢:)

【问题讨论】:

  • 在 Stack Overflow 上,将您自己限制为每个帖子的一个问题。你有两个不同的问题。我来回答第一个。我强烈建议您编辑问题以删除第二个问题并单独询问,以免问题因“需要关注”而关闭。在第二个问题中,您应该解释您编写的代码有什么问题。如果它不起作用,请提供错误消息,或解释它与您预期的不同之处。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

现在,我不明白他们为什么在尝试更新批次时给出特定文档的名称。

需要调用每个单独的文档以批量创建、更新或删除。没有其他选择。 Firesotre 不提供任何方式来批量更新多个项目作为查询的结果,类似于 SQL“更新位置”查询。如果您要批量更新多个项目,则必须:

  1. 执行查询以查找每个文档
  2. 迭代结果并收集对每个文档的引用
  3. 使用批处理 API 将每个文档更新添加到批处理中。

【讨论】:

  • 感谢道格再次回答我的问题。我对 Flutter 和 Firestore 还很陌生,我感到完全迷失了。你认为你可以给我一个小sn-p,它可以告诉我这3个步骤是如何完成的吗?非常感谢您的帮助!
  • 您应该能够轻松找到有关每一项任务的文档。如果您已经编写了您在此处提供的批量更新,那么其余的应该很容易。
  • 在 Stack Overflow 上,如果您发现某个答案有帮助,通常会使用答案左侧的按钮进行投票并将答案标记为正确。
猜你喜欢
  • 2020-12-21
  • 2019-11-14
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多