如何获取Firestore的firestore.indexes.json?集合组索引配置难题
Firestore集合组查询的索引配置疑问
当Firestore查询缺少所需索引时会直接失败,日志探索器里的错误消息附带了可一键创建索引的链接,这在开发环境中很实用,但显然不是生产环境部署索引的合理方式。目前的问题是:既没法从这条错误消息里直接导出firestore.indexes.json的对应配置代码,也没法在通过该链接创建索引后,从Firebase控制台导出这个配置文件。想确认是不是有什么步骤被遗漏了?
具体场景示例
云函数中的查询代码
const docRefsMemberships = admin.firestore() .collectionGroup("members") .where("userId", "==", context.params.userId)
日志探索器中的错误提示
The query requires a COLLECTION_GROUP_ASC index for collection members and field userId
手动编写的firestore.indexes.json配置
{ "indexes": [ { "collectionGroup": "members", "queryScope": "COLLECTION_GROUP", "fields": [ { "fieldPath": "userId", "order": "ASCENDING" } ] } ], "fieldOverrides": [] }
Firebase CLI部署时的报错
Error: HTTP Error: 400, this index is not necessary, configure using single field index controls
根据Firestore关于自动索引的文档说明,集合组的单字段索引不会自动维护,但文档并未进一步说明该如何手动创建这类索引。
那么,到底该如何从日志探索器的初始错误消息(或者查询本身)得到正确的索引配置?
内容的提问来源于stack exchange,提问作者Fred
相关产品推荐
相关产品推荐

