如何读取隐藏的ID Firestore

时间:2019-01-04 11:51:04

标签: javascript firebase google-cloud-firestore

当节点中没有字段时如何读取集合?

例如,我有如下收集数据:

tags > tagid1 > postId > { createdBy : 'user1' }
tags > tagid2 > postId > { createdBy : 'user1' }
tags > tagid3 > postId > { createdBy : 'user1' }

在我尝试读取标签集合的地方,它没有提供任何数据。

const g = await db.collection('tags').get();
g.size // 0  - but it has three sub element tagid1, tagid2, tagId3 (these ids are dynamic)

当childern中没有直接元素时,有什么方法可以读取集合?

1 个答案:

答案 0 :(得分:0)

您将获得0,因为在您的tags馆藏中没有实际的文件。 tagid1tagid2tagId3等不存在。这些文档(标记对象)不存在,因为您根本没有创建它们。您所做的就是在最初不存在的文档下创建子集合。换句话说,您仅为id集合中的文档“保留”了tags,然后在其下创建了一个子集合。一般来说,您应该只创建实际存在的文档的子集合。

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

如果要获取实际的文档数,请在每个标签对象下至少创建一个包含值的属性。