首页 > 解决方案 > 无法理解 Firestore 批量更新 - Flutter

问题描述

阅读 Firestore 官方批量操作文档后我的理解是,批量操作执行多个操作,并且可以同时更改多个文档。

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

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

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

提前致谢 :)

标签: firebasefluttergoogle-cloud-firestore

解决方案


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

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

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

推荐阅读