我应该为iOS应用创建Firestore索引吗

时间:2018-09-16 08:36:17

标签: swift firebase google-cloud-firestore

我有一个名为城市的集合,每个城市文档都具有 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索引?

1 个答案:

答案 0 :(得分:3)

对于某些操作,例如带有多个参数的查询(在最上面的一个中,您同时使用whereorder),您将需要firebase来为您生成一个索引,以便它可以轻松地被两个查询这些论点。

要执行此操作,请在Firebase控制台中转到Firestore仪表板,然后导航至“索引”标签。首次运行时创建索引可能需要几分钟,但是您只需这样做一次。