在Firebase Firestore中,我想两次使用orderBy。我是否需要创建索引来加速查询?

时间:2018-04-24 22:52:50

标签: javascript indexing google-cloud-firestore

在Firebase Firestore中,我想两次使用orderBy。我是否需要创建索引以加快查询速度?

例如:

Query query = fsDB.collection("users").document(currentUID).collection("received_messages")
.orderBy("messageSeen").orderBy("date");

没有自动错误消息显示为使用范围或“where”时。

结构如下:

received_messages

  date:  01/02/99

  messageSeen:  true

  from:  keuajopdf315 

我应该在集合“已接收消息”和“messageSeen”和“date”字段上放置索引以加快查询速度吗?

1 个答案:

答案 0 :(得分:2)

当我尝试使用两个ord​​erBy()子句运行查询时,出现错误:

  

查询需要索引。你可以在这里创建:...

添加错误消息中链接的索引后,我可以检索按状态排序的文档然后按索引。在这里查看我的工作jsbin:https://jsbin.com/rewujav/edit?js,console

docs.orderBy("state").orderBy("index").get().then(function(snapshot) {
  snapshot.forEach((doc) => {
    console.log(doc.id+": state="+doc.data().state+" index="+doc.data().index);
  })
})