我有一个查询,它在我的服务器中按我的时间戳值排序,当前的时间戳由我的pojo设置为日期
data class Timestamp(@ServerTimestamp val timestamp:Date? = null)此时间戳放在firestore中,格式为

但是当我做取数代码的时候
val snapshot = FirebaseFirestore
.getInstance()
.collection("orders")
.whereEqualTo("uid",currentUser.uid)
.whereLessThan("status",Status.DELIVERED.statusNumber)
.orderBy("status",Query.Direction.DESCENDING)
.orderBy("timestamp",Query.Direction.ASCENDING)我希望在列表中首先看到我完成的最新订单,但实际上是将我的旧订单与新订单混合在一起,我的目标是首先显示我在orders集合中放置的最新订单,但在创建新订单时不会对其进行排序
发布于 2020-04-09 07:14:35
如果你首先想要最新的文档,你应该在时间戳上做一个降序。如果您希望列表主要按时间戳排序,其次按状态排序,则时间戳orderBy应位于orderBy on status之前(目前,您主要是按状态排序,其次是按时间戳排序)。
.orderBy("timestamp",Query.Direction.DESCENDING)
.orderBy("status",Query.Direction.DESCENDING)https://stackoverflow.com/questions/61111400
复制相似问题