我有一段代码,它将提交作为新文档添加到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);
}
});