首页 > 解决方案 > 将文档添加到 Firestore 中不存在的子集合

问题描述

希望这不是太明显,但在这一点上我真的很难过。我无法将文档添加到 Firebase Firestore 中不存在的子集合。

添加到已经存在的子集合时,该代码可以完美运行。

db.collection("collectionId").doc(docId).collection("subcollectionId").doc(subdocId).collection("items").add({
    userName,
    isActive: true        
}).then(function() {
    console.log("Document successfully written!");
}).catch(function(error) {
    console.error("Error writing document: ", error);
});

在这里要清楚,子子集合“项目”存在于我的一些子集合中,并且尚未在其他子集合中创建。当我尝试在已经有其他“项目”的子集合中使用上述代码将文档添加到“项目”时,它会产生以下结果:

Document successfully written!

当我尝试将文档添加到“项目”不存在的子集合中的“项目”时,它不会添加项目并且没有任何内容写入控制台。

我在这里先向您的帮助表示感谢!

根据要求更新屏幕截图:

成功: 在此处输入图像描述

失败: 在此处输入图像描述

标签: javascriptgoogle-cloud-firestore

解决方案


当您将文档写入任何不存在的集合或子集合时,它将立即存在。这种行为永远不会改变。如果没有实际编写文档,SDK 永远不会给您一个成功的指标。

如果您说文档没有被写入,那么听起来您没有找对地方。在网络浏览器中刷新 Firebase 或 Cloud 控制台有助于显示新创建的集合。如果您确切知道subdocId此处的值是什么,这也将有所帮助,因此您可以确定在哪里查看。


推荐阅读