是否可以在收藏夹中添加子收藏夹而不在android的firestore中创建文档?

时间:2018-07-24 15:15:59

标签: android firebase google-cloud-firestore

我是Firebase中的Cloud Firestore的新手。在我的项目中,我创建了 category 作为所有用户通用的集合。但是我需要为每个集合创建 category 作为子集合。有可能吗?

我们将不胜感激任何帮助。

3 个答案:

答案 0 :(得分:5)

Alex的答案基本上是正确的,只是他没有指出您可以在不存在的文档下拥有一个子集合。为了将子集合包含在其文档ID下,没有义务拥有实际文档。

当使用这样的文档ID创建对子集合的引用时:

db.collection('coll').doc('doc').collection('subcoll')

如果文档ID doc尚不存在,那完全不是问题。实际上,在将文档添加到subcoll后,doc会在Firebase控制台中以斜体显示 ,表示该文件不存在。如果您愿意,仍然有机会创建文档,但是没有义务这样做。无论文档是否存在,都可以进入子集合的内容。如果创建文档,也可以将其删除,并且其所有子集合仍将存在。

如果这种子集合组织适合您的需求,请随时使用它。

答案 1 :(得分:3)

  

是否可以将子集合添加到集合中,而无需在android的firestore中创建文档?

绝对不是!根据{{​​3}},唯一允许的结构如下:

db.collection('coll').doc('doc').collection('subcoll').doc('subdoc')

Firestore中无法将一个集合存储在其他集合之下。因此,以下代码行是不允许的:

db.collection('coll').collection('subcoll').doc('subdoc') //Not allowed

由于无法将文档存储在其他文档下。

db.collection('coll').doc('doc').doc('subdoc') //Not allowed

答案 2 :(得分:0)

就像所有人都回答过你不能那样。 但是您可以根据任何集合制作1个文档,也可以根据任何文档制作1个集合,以您想要的方式访问数据...。 只需要更长的代码。例如-

db.collection('coll')。 doc('doc') .collection('subcoll')

bold =='仅1个文档'