javascript - 数组值未添加到 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 只是为了调试)时,它被正确添加(见下图),即使值相同。
有人可以解释一下吗?是否保留了“设施”一词,或者这可能是一个错误?
更新:我实现了一个云功能作为解决方法,它也失败了。
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);
}
});