我有一组带有生成标识符的文档。问题是:是否可以在不查询所有文档数据的情况下获得标识符列表?将这些 key 存储在单独的集合中是否更好?
最佳答案
答案取决于您尝试使用哪个 API。
对于移动/网络 SDK,由于这些客户端 do not support projections of any kind ,无法满足您的要求。 .
对于服务器 SDK,您可以进行空投影,即
db.collection('foo').select()
在这种情况下,服务器将向您发送匹配的文档,但会忽略查询结果中的所有字段。
对于REST API,您可以使用包含字段掩码'__name__'
的runQuery
执行相同的操作,如下所示:
curl -vsH 'Content-Type: application/json' \
--data '{
"parent": "projects/my-project/databases/(default)",
"structuredQuery":{
"from": [{"collectionId": "my-collection"}],
"select": {
"fields": [{"fieldPath":"__name__"}]
}
}
}' \
'https://firestore.googleapis.com/v1beta1/projects/my-project/databases/(default)/documents:runQuery'
根据需要替换my-project
和my-collection
。请注意,"from"
中的 "collectionId"
只是最右边的名称组件。如果您想要子集合中的键,REST API 需要在“parent”
字段中提供父文档名称。
关于firebase - 如何获取集合 Cloud Firestore 中的文档 ID 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47061903/