Flutter Firestore:通过参数更新对象数组

Dan*_*ani 1 firebase flutter google-cloud-firestore

我有一个包含这些参数的文档:

"rent": "text",
"leases": [
 {
  "id": 1,
  "title": "text",
 },
 {
  "id": 2,
  "title": "text",
 }
]
Run Code Online (Sandbox Code Playgroud)

我将新元素添加到数组中,如下所示:

.update({'leases': FieldValue.arrayUnion([newLease])});
Run Code Online (Sandbox Code Playgroud)

但我怎样才能只更新 id 2 呢?

Fra*_*len 10

数组操作可以添加尚未在数组中的项目 ( FieldValue.arrayUnion) 或删除已在数组中的项目 ( FieldValue.arrayRemove )。无法通过索引或其他方式自动更新现有项目。

所以这意味着唯一的选择是:

  1. 将文档读入您的应用程序代码中。
  2. 从中获取数组。
  3. 更新应用程序中的数组。
  4. 将整个数组写回数据库。

另请参阅: