如何通过Firestore REST API获取用户文档下的子集合名称?
使用Firestore REST API列出指定文档的子集合
核心请求逻辑
要获取/users/{uid}/下的所有子集合名称,需发送GET请求到Firestore的集合列表端点,关键是添加listCollections=true查询参数触发子集合列表返回。
请求端点格式
GET https://firestore.googleapis.com/v1/projects/{你的项目ID}/databases/(default)/documents/users/{目标UID}?listCollections=true
- 替换
{你的项目ID}为你的Firebase项目ID - 替换
{目标UID}为具体的用户UID
认证要求
请求必须携带有效的身份凭据:
- 优先使用OAuth 2.0访问令牌(适用于后端服务或已授权客户端)
- 也可使用Firebase API密钥(仅适用于公开访问场景,需确保权限配置正确)
curl请求示例
curl -X GET \ "https://firestore.googleapis.com/v1/projects/your-project-id/databases/(default)/documents/users/123456?listCollections=true" \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"
响应解析
成功响应会返回包含子集合信息的JSON结构,你可以从collections数组的name字段中提取子集合名称:
{ "collections": [ { "name": "projects/your-project-id/databases/(default)/documents/users/123456/purchases" }, { "name": "projects/your-project-id/databases/(default)/documents/users/123456/devices" } ] }
截取name字段的最后一段即可得到子集合名称(如purchases、devices)。
注意事项
- 确保目标
users/{uid}文档存在,否则可能返回空集合列表或404错误 - 使用API密钥时,需在Firebase控制台允许该密钥访问Firestore API
- 发起请求的身份需拥有
datastore.collections.list权限
内容的提问来源于stack exchange,提问作者mbithi
相关产品推荐
相关产品推荐

