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

Firebase: How do I update value in array instead of adding new element in Firestore?

我有一个 Firebase 数组,如下所示

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

如何更新名称为 'abc' 的元素,例如,使其成为这样的 {评分:3,姓名:'abc'}

我尝试了下面的方法,但它向数组添加了一个元素,因为它认为它由于评级值不同而独一无二。

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

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