枚举Shallow Firestore集合中的伪文档



我有一个包含文档/users/{userId}/public/doc的firestore数据库,但伪文档users/{userId}实际上没有自己的字段。在基于web的firebase控制台中,这些伪文档列出了,但以斜体显示为灰色,可能表示它们丢失了。

但是,我无法通过Python的firebase_admin或firebaseCLI工具以编程方式列出这些伪文档。

那么,如何才能真正列出浅集合中的项目呢?

请记住,Firebase控制台不一定要使用公共javascript客户端SDK提供的操作来填充其屏幕。例如,它可以调用使用nodejs(或等效(SDK的后端,该SDK提供listDocuments((API,该API为:

检索此集合中的文档列表。

返回的文档引用可以包括对";丢失的文档";,即没有文档的文档位置,但是其中包含与文档的子集合

因此,假设你有一个可以使用此API的后端,你当然可以在你的应用程序中自由地做同样的事情。

由于/users/{userId}中没有文档,因此它不会显示在/users上的查询中。Firestore控制台只显示userId,这样它就可以显示它下面的子集合

客户端代码发现userId路径存在的唯一方法是查询子集合,然后从DocumentSnapshot备份的遍历路径。不过,这是一个非常笨拙的解决方法,所以如果您的用例依赖于以后能够从/users中读取userId文档,我建议您始终创建它们。

最新更新