Firebase orderBy timestamp фактически не заказывает - PullRequest
1 голос
/ 09 апреля 2020

У меня есть запрос, который упорядочен по значению моей метки времени на моем сервере, текущая метка времени установлена ​​моим pojo как дата

data class Timestamp(@ServerTimestamp val timestamp:Date? = null)

Эта метка времени помещается в firestore как

enter image description here

Но когда я делаю код извлечения

 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)

Я хочу сначала увидеть в списке последние заказы, которые я сделал, но вместо этого смешивает мои старые заказы с новыми, моя цель здесь состоит в том, чтобы сначала отобразить самые новые заказы, которые я разместил в коллекции заказов, но вместо этого он не выполняет их при создании новых заказов

1 Ответ

1 голос
/ 09 апреля 2020

Если вы хотите сначала новые документы, вы должны сделать заказ по убыванию с отметкой времени. Если вы хотите, чтобы список в первую очередь сортировался по отметке времени, а затем сортировался по статусу, отметка времени orderBy должна предшествовать значению orderBy по состоянию (сейчас вы сортируете в основном по состоянию, а затем по отметке времени).

.orderBy("timestamp",Query.Direction.DESCENDING)
.orderBy("status",Query.Direction.DESCENDING)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...