在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”字段上放置索引以加快查询速度吗?
答案 0 :(得分:2)
当我尝试使用两个orderBy()子句运行查询时,出现错误:
查询需要索引。你可以在这里创建:...
添加错误消息中链接的索引后,我可以检索按状态排序的文档然后按索引。在这里查看我的工作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);
})
})