我想按img
降序对文档进行排序。
我试图在Firebase控制台中添加索引。这是“索引”标签中的屏幕截图:
这是我的代码:
db.collection("images").whereEqualTo("user", uid).orderBy("img", Query.Direction.DESCENDING).get()
.addOnSuccessListener {
if (it.isEmpty) {
Log.i("Image", "Sorry, no image")
} else {
for (task in it) {
Log.i("Image", task.get("img").toString())
}
}
}
这是日志:
I/Image: 2
I/Image: 1
I/Image: 3
I/Image: 4
I/Image: 6
I/Image: 7
我在做什么错了?
答案 0 :(得分:0)
请注意,如documentation所述,您所遇到的行为可能有两种解释:
如果您的过滤器具有范围比较(<,<=,>,> =),则您的第一次订购必须在同一字段上
您不能通过等号(=)或in子句中包含的任何字段对查询进行排序。
基于文档中提供的以下代码段:
citiesRef.whereGreaterThan("population", 100000).orderBy("population").limit(2)
您可以尝试以下方法(但是由于2,我不确定是否可以使用):
db.collection("images").whereEqualTo("user", uid).orderBy("user").orderBy("img", Query.Direction.DESCENDING).get()
.addOnSuccessListener {
if (it.isEmpty) {
Log.i("Image", "Sorry, no image")
} else {
for (task in it) {
Log.i("Image", task.get("img").toString())
}
}
}