【问题标题】:Firestore - Phantom duplication of the collection when adding a doc to a sub-collectionFirestore - 将文档添加到子集合时,集合的幻像复制
【发布时间】:2021-04-05 15:09:59
【问题描述】:

我在一个网络项目中使用 firestore。通过一个页面,我尝试在参考文献“Organisation/Ligue-ujYYEFE9lAPt6DrehBDG/Company”和“Organisation/Ligue-ujYYEFE9lAPt6DrehBDG/Promise”中添加文档(子集合“Company”和“Promise”已经有一个文档)。添加文档后,在具有相同 id 的其他集合中显示为 italic

用于设置文档的代码非常标准:

firebase
        .firestore()
        .collection("Organisation")
        .doc(organisationId)
        .collection("Company")
        .doc(companyData.companyId)
        .set(companyData)

主要收藏:

已创建斜体集合:

【问题讨论】:

  • 当您将文档添加到子集合时,您是否 100% 确定父文档 ID 中没有多余的空格?
  • 我很高兴你是对的,我的收藏 ID 开头有一个空格
  • 很高兴能为您提供帮助。我会写一个答案,解释为什么我认为这是一个这样的问题。
  • 查看答案。

标签: firebase google-cloud-firestore


【解决方案1】:

查看您的 Firebase 控制台屏幕截图,很可能是因为斜体显示的 Organisation 文档的 ID 前面多了一个空格。

我们怎样才能做出这个假设?

首先,我们在控制台中看到两次 ID Ligue-ujYYEFE9lAPt6DrehBDG,一次是斜体,一次是非斜体。

对于斜体 ID,这意味着该文档仅作为一个或多个子集合的“容器”存在,但它不是“真正的”文档(它不存在,它是一种“幽灵”)。在answer 中查看更多信息。

另一方面,不是斜体的 ID 对应于您问题的屏幕截图中显示的文档(字段被黑色矩形隐藏的文档)。 此文档确实存在

因此,由于我们不能在给定集合中拥有两个具有相同 ID 的文档,因此我们可以得出结论,真正的文档和“幽灵”没有相同的 ID...甚至如果我们在控制台中看到它是一样的......

其次,我记得我的一个 answer 证明,如果 Firestore 文档在其 ID 的开头有一个额外的空格,Firestore 控制台在显示它时不会显示这个额外的空格在集合中。

=>结论:很可能在Organisation文档的ID前面有一个额外的空格,以斜体显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多