Firestore创建深层文档时如何自动生成中间祖先文档?
Firestore 深层文档创建相关问题解答
不需要显式创建中间的虚拟祖先文档
Firestore控制台显示的斜体虚拟文档是正常机制——Firestore的集合与父文档是松耦合的,子集合的存在完全不依赖父文档是否真实创建。这些虚拟文档仅用于控制台展示层级结构,不会影响任何读写、查询操作,你后续操作目标子集合下的文档完全不受限制。没有自动生成中间文档的配置参数
Firestore的设计逻辑是:只有主动调用setDoc、updateDoc这类写入文档的方法时,才会真正创建文档。所有未写入数据的中间路径文档,都会保持虚拟状态,没有参数可以让addDoc或collection方法自动生成这些文档。若需真实创建中间文档,只能手动处理
如果业务逻辑要求父文档必须真实存在(比如某些查询依赖父文档存在,或需要控制台显示为正常非斜体),你需要逐个调用写入方法创建:// 先创建dayStats文档 await setDoc(doc(firestore, 'stats', 'dayStats'), {}); // 再创建2023文档 await setDoc(doc(firestore, 'stats', 'dayStats', 'years', '2023'), {}); // 最后添加子集合文档 const response = await addDoc( collection(firestore, 'stats', 'dayStats', 'years', '2023', 'january'), statData );但这种场景非常少见,绝大多数情况下不需要这么做。
内容的提问来源于stack exchange,提问作者Damjan
相关产品推荐
相关产品推荐

