我有一个看起来像这样的 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(即通过传递整个修改后的数组来更新文档)。