数组值未添加到Firestore

时间:2018-04-30 12:36:25

标签: javascript firebase google-cloud-firestore

我有一段代码,它将提交作为新文档添加到Firestore中的提交集合,此提交包含多个字段。环境是JavaScript React Native。

我正在处理一个奇怪的行为:

const parent = db.collection('submissions').doc();

console.log(submission.facilities);
// output: ["CHANGING_FACILITIES"] // it's an array

batch.set(parent, {
  ...submission,
  facilitiess: submission.facilities
});

batch.commit();

由于某种原因,该字段命名为"设施"始终作为空数组推送。当我将该字段重命名为" facilitiess" (添加额外的s只是为了调试)它被正确添加(见下图),即使值相同。

有人可以解释一下吗?是"设施"保留还是这可能是一个错误?

enter image description here

更新:我实施了云功能作为解决方法,它也失败了。

exports.fixArrayBug = functions.firestore
  .document('submissions/{id}')
  .onCreate(async (snap, context) => {
    try {
      await admin
        .firestore()
        .collection('submissions')
        .doc(context.params.id)
        .update({
          facilities: snap.data().facilitiess,
          facilitiess: admin.firestore.FieldValue.delete()
        });
    } catch (err) {
      console.error(err.message);
    }
  });

0 个答案:

没有答案