将数据写入 firebase firestore 中的嵌套对象

IT技术 reactjs firebase google-cloud-firestore
2021-05-07 08:14:10

我有一个如下所示的数据结构: 在此处输入图片说明

这是集合的顶级: 在此处输入图片说明

我想写入以增加字段计数,但我不能这样做。我尝试了很多不同的方法,我宁愿不通过所有这些方法。我得到的最接近的是:

const pageRef = admin.firestore().collection("pages").doc(image.page);

pageRef.set(
  {
    [`images.${image.position}.count`]: admin.firestore.FieldValue.increment(
      1
    ),
  },
  { merge: true }
);

但这给我留下了: 在此处输入图片说明

请帮忙。更改页面结构是一种选择。

这就是我试图复制的内容: 更新 firestore 文档中嵌套对象中的字段?

1个回答

问题在于如何使用点符号。

您分享帖子中,他们使用的示例是:

var setAda = dbFirestore.collection('users').doc('alovelace').update({
    "first.test": "12345"
});

将此应用于您的代码和模型将是:

const pageRef = admin.firestore().collection("pages").doc(image.page);

pageRef.set(
  {
    `images[${image.position}].count`: admin.firestore.FieldValue.increment(
      1
    ),
  },
  { merge: true }
);

这将影响数组图像中的元素,该元素image.position的值计数。