我在一个网络项目中使用了 firestore。我尝试在页面中添加文档“Organisation/Ligue-ujYYEFE9lAPt6DrehBDG/Company”和“Organisation/Ligue-ujYYEFE9lAPt6DrehBDG/Promise”(子集合“Company”和“Promise”已经有一个文档)。添加文档后,它在另一个具有相同id的集合中显示为斜体。
用于设置文档的代码非常标准:
firebase
.firestore()
.collection("Organisation")
.doc(organisationId)
.collection("Company")
.doc(companyData.companyId)
.set(companyData)
答案 0 :(得分:2)
查看您的 Firebase 控制台屏幕截图,很可能是因为以斜体显示的 Organisation
文档的 ID 前面有一个额外的空格。
我们如何做出这个假设?
首先,我们在控制台中看到两次 ID Ligue-ujYYEFE9lAPt6DrehBDG
,一次是斜体,一次是非斜体。
对于斜体的 ID,这意味着该文档仅作为一个或多个子集合的“容器”存在,而不是“真正的”文档(它不存在,它是一种“幽灵”)。在此answer中查看更多信息。
另一方面,非斜体的 ID 对应于您问题的屏幕截图中显示的文档(字段被黑色矩形隐藏的文档)。 此文档确实存在。
因此,由于在给定的集合中不能有两个具有相同 ID 的文档,因此我们可以得出结论,真正的文档和“幽灵”没有相同的 ID...甚至如果我们在控制台中看到它是相同的...
第二次,我记得我的一个 answer 证明,如果 Firestore 文档在其 ID 的开头有一个额外的空格,Firestore 控制台不会在以下情况下显示这个额外的空格将其显示在集合中。
=> 结论:很可能在以斜体显示的 Organisation
文档的 ID 前面有一个额外的空格。