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

Posted

技术标签:

【中文标题】Flutter Firestore:通过参数更新对象数组【英文标题】:Flutter Firestore: update array of object by param 【发布时间】:2021-08-22 13:20:07 【问题描述】:

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

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

我像这样向数组中添加新元素:

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

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

【问题讨论】:

【参考方案1】:

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

这意味着唯一的选择是:

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

另见:

How can I update map data that's in a array in firebase? (Flutter) Flutter: Update specific index in list (Firestore) how to edit an array element present in firestore

【讨论】:

以上是关于Flutter Firestore:通过参数更新对象数组的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:更新列表中的特定索引(Firestore)

更新 Firestore 中 Array 的 Map 数据 - Flutter

在 Flutter 中更新 firestore 后,项目无法编译

如何使用flutter更新firestore中所有文档的单个字段?

Flutter_bloc 从没有 UI 事件的 firestore 获取更新的数据

Flutter Provider,当他的参数改变时更新 StreamProvider