Firestore 文档/子集合不存在

问题描述 投票:0回答:1

我有这个数据库结构:

Firestore-root
|
--- sites (collection)
|     |
|     --- common (document)
|            |
|            --- //templates (collection)
|            |
|            --- //menus (collection)
|            |
|            --- //articles (collection) <----
|     --- other (document)
|            |
|            --- //articles (collection)

当我尝试将文章添加到数据库(如箭头所示)时,“通用”和“其他”文档为斜体,因此不存在。

我尝试添加时的代码:优先级是常见的,类型是文章。

def documentReference = firestoreClient.databaseReference.collection(siteName).document(priority).collection(TYPE).document(key)
documentReference.set(article)

这是控制台: firestore console image

这是构建我的数据库的糟糕方法还是有快速修复方法?

我尝试先创建子集合,但没有成功!

firebase google-cloud-firestore
1个回答
11
投票

Firebase 控制台不会向您指示“通用”和“其他”文档已删除。它告诉你它“不”存在。这些文档不存在,因为它们根本不是您创建的。您所做的只是在一个根本不存在的文档下创建一个子集合。换句话说,它只是为该集合中的文档“保留”一个 ID,然后在其下创建一个子集合。通常,您应该只创建实际存在的文档子集合,但这就是文档不存在时的样子。 需要记住的一件事是,在 Cloud Firestore 中,文档和子集合不像文件系统文件和目录那样工作。如果您在文档下创建子集合,它不会隐式创建任何父文档。子集合不以任何方式与父文档绑定。 以斜体显示的文档 ID 不一定是“已删除”。它们以这种方式显示是因为该文档不存在。换句话说,该位置没有物理文档

但是

该位置下还有其他数据。

如果你想纠正这个问题,你必须至少编写一个可以保存值的属性。 附注在 Firestore 中,如果您删除文档,其子集合仍然存在。

© www.soinside.com 2019 - 2024. All rights reserved.