首页 > 解决方案 > Flutter Firestore:通过参数更新对象数组

问题描述

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

"rent": "text",
"leases": [
 {
  "id": 1,
  "title": "text",
 },
 {
  "id": 2,
  "title": "text",
 }
]

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

.update({'leases': FieldValue.arrayUnion([newLease])});

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

标签: firebasefluttergoogle-cloud-firestore

解决方案


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

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

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

另见:


推荐阅读