Firestore文档/子集合不存在

时间:2018-11-08 13:23:19

标签: firebase google-cloud-firestore

我有这个数据库结构:

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

当我尝试向db中添加文章(如箭头所示)时,“ common”和“ other”文件以斜体显示,因此不存在。

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

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

这是控制台: firestore console image

这是构建数据库的一种不好的方法吗?或者有快速的解决方法吗?

我尝试先创建子集合,但没有任何运气!

1 个答案:

答案 0 :(得分:2)

Firebase控制台并未指示您删除了“常见”和“其他”文档。它告诉您存在。这些文档不存在,因为您根本没有创建它们。您所做的只是在文档中创建的子集合,而该子集合最初并不存在。换句话说,它只是“保留”该集合中文档的ID,然后在其下创建一个子集合。通常,您应该只创建实际上确实存在存在的文档子集合,但这就是文档不存在时的样子。

要记住的一件事,在Cloud Firestore中,文档和子集合不能像文件系统文件和目录那样工作。如果在文档下创建子集合,则不会隐式创建任何父文档。子集合不以任何方式绑定到父文档。

以斜体显示的文档ID不一定要“删除”。之所以显示它们,是因为该文档不存在。换句话说,该位置没有物理文档,但该位置下还有其他数据。

如果要更正此问题,则必须至少编写一个可以容纳值的属性。

P.S。在Firestore中,如果删除文档,则其子集合仍然存在。