【发布时间】:2021-07-01 21:28:21
【问题描述】:
这是我的查询:
db.requests
.where('userId', '==', uid)
.where('placeId', '==', placeId)
.where('endTime', '>=', Date.now())
.where('isFullfilled', '==', false);
所以我在firestore.indexes.json手动写了这个索引:
{
"collectionGroup": "requests",
"queryScope": "COLLECTION",
"fields": [
{
"fieldPath": "userId",
"order": "ASCENDING"
},
{
"fieldPath": "placeId",
"order": "ASCENDING"
},
{
"fieldPath": "endTime",
"order": "ASCENDING"
},
{
"fieldPath": "isFullfilled",
"order": "ASCENDING"
}
]
},
运行时,我收到错误“此查询需要索引”。自动创建的索引如下所示:
另一方面,我手动创建的索引在 GUI 中如下所示:
为什么它不接受我自己的索引?字段的顺序重要吗?我没有订购查询结果。是否有任何类型的索引创建模式?这真的很令人困惑,我在文档中找不到任何内容。必须对云数据库运行每个查询才能获得正确的复合索引字段顺序,这真的很烦人。
【问题讨论】:
标签: firebase indexing google-cloud-firestore