ell*_*zen 8 firebase google-cloud-firestore
我有一组带有生成标识符的文档.问题是:是否可以在不查询所有文档数据的情况下获取标识符列表?将这些密钥存储在单独的集合中更好吗?
Gil*_*ert 13
答案取决于您尝试使用的API.
对于移动/ Web SDK,由于这些客户端不支持任何类型的投影,因此无法满足您的要求.
对于服务器SDK,您可以执行空投影,即
db.collection('foo').select()
Run Code Online (Sandbox Code Playgroud)
在这种情况下,服务器将向您发送匹配的文档,但将省略查询结果中的所有字段.
对于REST API,您可以使用runQuery包含字段掩码的等效项来执行等效操作'__name__',如下所示:
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'
Run Code Online (Sandbox Code Playgroud)
替代my-project并my-collection酌情.请注意,"collectionId"中"from"只有最右边的名称组件.如果要在子集合中使用密钥,则REST API需要"parent"字段中的父文档名称.
tom*_*ozb 10
在 node.js 运行时,您可以获得这样的文档 ID 列表
const documentReferences = await admin.firestore()
.collection('someCollection')
.listDocuments()
const documentIds = documentReferences.map(it => it.id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3500 次 |
| 最近记录: |