如何更新 firestore 中数组内的对象?

IT技术 javascript reactjs google-cloud-firestore
2021-05-19 01:23:24

我想更新completedFirestore 数组中对象属性,但我不知道如何到达数组中的特定元素。该图像将显示结构。

在此处输入图片说明

我已经走到了这一步,但不知道如何选择,例如,数组中的第 1 项。我正在考虑使用它的 ID(它有一个 id 属性),但不知道如何到达那里。

const businessRef = db.collection('approvedBusinesses').doc(businessId)
      try {
        businessRef.update({
          [`bookings.${currentDate} ????? `]: true // what to add after currentDate?
        })

顺便说一下,这就是数组的创建方式(以及其他对象如何被推送到它)

const bookingObj = {
      carro: 'PASSA_CARRO',
      completed: false,
      userId: userObject.uid,
    }

businessRef.update({
        [`bookings.${currentDate}`]: firebase.firestore.FieldValue.arrayUnion(bookingObj),
      })
1个回答

Firestore 没有允许您通过索引更新数组中现有项目的操作。

要更新数组中的现有项目,您需要:

  1. 将整个文档读入您的应用程序。
  2. 在您的应用程序代码中修改数组中的项目。
  3. 将整个数组写回文档。

我很确定以前有人问过这个问题,所以让我看看是否有示例的答案。

另见: