Javascript 如何在firebase中更新数组中对象的字段

Javascript 如何在firebase中更新数组中对象的字段,javascript,arrays,reactjs,firebase,google-cloud-firestore,Javascript,Arrays,Reactjs,Firebase,Google Cloud Firestore,我正在尝试更新firestore数组中的字段 我收集了一份文件,内容如下: started: agoust, ends: november, positions: [ { player: 'user2', points: 6 }, { player: 'user3', points: 3 }, { player: 'user4', points: 0 }, { player: 'user1', points: 1 }, ] await firebase .firestore()

我正在尝试更新firestore数组中的字段

我收集了一份文件,内容如下:

started: agoust,
ends: november,
positions: [
{
player: 'user2',
points: 6
},
{
player: 'user3',
points: 3
},
{
player: 'user4',
points: 0
},
{
player: 'user1',
points: 1
},
]
await firebase
      .firestore()
      .collection('tournaments')
      .doc(bet?.id)
      .update({
        positions: firebase.firestore.FieldValue.arrayUnion({
          player: user?.username,
          points: 0
        })
      })
我只想更新当前用户(user1)的点,但我找不到答案

我试过这样的方法:

started: agoust,
ends: november,
positions: [
{
player: 'user2',
points: 6
},
{
player: 'user3',
points: 3
},
{
player: 'user4',
points: 0
},
{
player: 'user1',
points: 1
},
]
await firebase
      .firestore()
      .collection('tournaments')
      .doc(bet?.id)
      .update({
        positions: firebase.firestore.FieldValue.arrayUnion({
          player: user?.username,
          points: 0
        })
      })

这不起作用,它会清除所有数组

arrayUnion只能将项添加到数组中(如果它们不存在)。要修改数组项,您必须阅读文档,在内存中修改数组,然后将其写回。谢谢,我该怎么做?首先,单击我在本问题中标记的重复项。如果您在这三个步骤中有任何一个步骤上遇到了问题,请发布一个新的问题,解释您遇到的问题,以及无法按预期方式工作的代码。我建议的三个步骤都非常简单,产品文档对此进行了详细解释。