Я занимаюсь разработкой приложения для Android с постами и комментариями, используя базу данных firebase firestore. В разделе комментариев я загружаю последние 20 комментариев, используя следующий код
val db= FirebaseFirestore.getInstance()
db.collection("comments")
.whereEqualTo("post_id", postId)
.limit(20)
.orderBy("time", Query.Direction.DESCENDING)
.get(Source.SERVER)
.addOnSuccessListener { documents ->
}
.addOnFailureListener { exception ->
}
Я показываю эти комментарии в утилизации. Когда пользователь щелкает предыдущие комментарии, я выбираю метку времени предыдущего комментария и запускаю следующий код
val db= FirebaseFirestore.getInstance()
db.collection("comments")
.limit(20)
.whereLessThan("time",timestamp)
.whereEqualTo("post_id", postId)
.orderBy("time", Query.Direction.DESCENDING)
.get(Source.SERVER)
.addOnSuccessListener { documents ->
}
.addOnFailureListener { exception ->
}
получает 20 документов из базы данных пожарного магазина. Но это не получает старый комментарий. Вместо этого он получает последние комментарии.
когда я удаляю .orderBy ("time", Query.Direction.DESCENDING), он загружает самые первые комментарии из документа для идентификатора этой записи
Например. Если пост содержит 60 комментариев. Во-первых, я хочу загрузить 60-40 комментариев. тогда я хочу загрузить 40-20. затем 20-0.