我有一个包含文档/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
文档,我建议您始终创建它们。