我有一个名为城市的集合,每个城市文档都具有 is_favorite 布尔标志和 order 编号字段。我想用这种方式
db.collection("cities")
.whereField("is_favorite", isEqualTo: true)
.order(by: "order", descending: false)
.getDocuments {}
但是我收到此错误
Firestore错误查询需要索引。
同一时间,这两种构造都可以正常工作
db.collection("cities")
.whereField("is_favorite", isEqualTo: true)
.getDocuments {}
db.collection("cities")
.order(by: "order", descending: false)
.getDocuments {}
那么如果同时使用两个查询,为什么还要关心Firestore索引?
答案 0 :(得分:3)
对于某些操作,例如带有多个参数的查询(在最上面的一个中,您同时使用where
和order
),您将需要firebase来为您生成一个索引,以便它可以轻松地被两个查询这些论点。
要执行此操作,请在Firebase控制台中转到Firestore仪表板,然后导航至“索引”标签。首次运行时创建索引可能需要几分钟,但是您只需这样做一次。