【发布时间】:2018-06-23 19:50:31
【问题描述】:
我在我的项目中使用 Firestore,所以我想在我的项目中显示所有集合名称。
是否可以从 Firebase 项目中获取所有集合名称。
谢谢..
【问题讨论】:
标签: firebase google-cloud-firestore
我在我的项目中使用 Firestore,所以我想在我的项目中显示所有集合名称。
是否可以从 Firebase 项目中获取所有集合名称。
谢谢..
【问题讨论】:
标签: firebase google-cloud-firestore
您可以执行以下操作:
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));
这适用于 NodeJS。
请记住,您需要下载 firebase-admin 并为 Firebase 服务器端进行必要的配置。
【讨论】:
获取顶级集合列表的公共 API 有限。移动客户端(Android、iOS、Web)没有 API。 Node.js 管理员客户端在Firestore 上有listCollections() 来获取该列表。或者,如果您要查找嵌套在文档下的子集合,请使用 DocumentReference.listCollections()。
如果您想在任何平台上获取列表,您应该在已知文档 ID 内的已知集合中自己维护该列表。
【讨论】:
getCollections() 已替换为 listCollections()
您可以创建一个单独的集合(例如listOfCollections),其中包含所有其他集合名称作为文档或在一个文档中的字符串数组中作为替代。
然后,每当您添加新集合时,首先将其名称添加到 listOfCollections。
【讨论】: