获取Firestore中的所有集合

Raj*_*lle 9 firebase google-cloud-firestore

我在我的项目中使用Firestore,所以我想在我的项目中显示所有集合名称.

从Firebase项目获取所有集合名称是否可行.

谢谢..

小智 9

您可以创建一个单独的集合(例如listOfCollections),其中包含所有其他集合名称作为文档或作为替代方案包含在一个文档中的字符串数组中。

然后,每当您添加新集合时,首先将其名称添加到listOfCollections.


小智 9

您可以执行以下操作:

const admin = require("firebase-admin");
const db = admin.firestore();

db.listCollections()
  .then(snapshot=>{
      snapshot.forEach(snaps => {
        console.log(snaps["_queryOptions"].collectionId); // LIST OF ALL COLLECTIONS
      })
  })
  .catch(error => console.error(error));

Run Code Online (Sandbox Code Playgroud)

这适用于 NodeJS。
请记住,您需要firebase-admin为 Firebase 服务器端下载并进行必要的配置。


Dou*_*son 7

有限的公共API可以获取顶级集合的列表。移动客户端(Android,iOS,Web)没有API。Node.js管理客户端在Firestore上具有getCollections()以获取该列表。

如果要在任何平台上获取列表,则应将该列表自己保存在已知文档ID中的已知集合中。

  • `getCollections()` 已替换为 `listCollections()` (2认同)