flutter - Firebase:如何更新数组中的 value 而不是在 Firestore 中添加新元素?

我有一个看起来像这样的 Firebase 数组

categories:[{rating: 1, name: 'abc'}, {rating: 2, name: 'xyz'}]

如何更新名称为“abc”的元素,例如使其类似于 {rating: 3, name: 'abc'}

我尝试了下面的方法,但它向数组添加了一个元素,因为它认为它是唯一的,因为评级 value 不同。

var ref = _db.collection('reports').doc(user.uid);
const data = { categories: FieldValue.arrayUnion([{"name": 'abc', "rating": 3}]) } 
ref.set(data, SetOptions(merge: true));

回答1

您需要读取数组,在前端对其进行修改并将其写回 Firestore(即通过传递整个修改后的数组来更新文档)。

相似文章

最新文章