Firestore创建链式路径时中间文档显示不存在的解决方法
Firestore嵌套集合父文档显示不存在的解决方法
Firestore允许直接在未创建的父文档路径下创建子集合,这是它的设计特性,但也导致你遇到的问题:中间的doc1因为从未被显式创建,所以在控制台显示为灰色斜体,且不会被查询或快照捕获。
要解决这个问题,核心就是显式创建父文档doc1,你可以在同一个事务中同时完成父文档和子集合文档的创建,保证操作的原子性:
// 先创建父文档doc1,可设为空对象或添加默认字段 transaction.create(db.collection('collect1').doc('doc1'), {}); // 再创建子集合中的目标文档 transaction.create(db.collection('collect1/doc1/collect2').doc(), {current: "simulator"});
如果不需要父文档存储任何业务数据,创建一个空文档就足够让它在控制台正常显示。后续如果需要给doc1补充字段,随时通过更新操作添加即可。
如果你的场景不需要事务的原子性保障,也可以分开执行两个create操作,但事务能确保两个操作要么都成功,要么都失败,适合对数据一致性有要求的场景。
内容的提问来源于stack exchange,提问作者Steven-Carrot
相关产品推荐
相关产品推荐

