React Native中Firestore数组值无法添加问题咨询
解决Firestore批量写入时数组字段未正常添加的问题
嘿,我一眼就揪出问题啦!你代码里犯了个超容易忽略的拼写错误——在batch.set的字段里,你写成了facilitiess(多了一个s),但你要存储的数组是submission.facilities,这就导致Firestore创建了一个完全不存在的新字段,而你真正期望的facilities字段根本没被写入进去。
你打印submission.facilities能看到正确的数组,说明数据本身没问题,就是字段名拼写失误拖了后腿。Firestore对字段名是严格匹配的,多一个字母都会生成新字段,自然就看不到你想要的数组数据了。
给你修正后的代码:
const parent = db.collection('submissions').doc(); console.log(submission.facilities); // output: ["CHANGING_FACILITIES"] // it's an array // 把字段名从facilitiess改为facilities,和原数据字段保持一致 batch.set(parent, { ...submission, facilities: submission.facilities }); batch.commit();
另外补充个小优化:如果submission对象里已经包含了facilities字段,那其实你根本不需要单独再写一遍赋值,直接传入整个submission就行,既简洁又能避免拼写错误:
const parent = db.collection('submissions').doc(); console.log(submission.facilities); // output: ["CHANGING_FACILITIES"] // it's an array batch.set(parent, submission); batch.commit();
内容的提问来源于stack exchange,提问作者user5470921
相关产品推荐
相关产品推荐

