Разбиение на страницы Firestore: запрос StartAfter с DocumentSnapshot не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Разбиение на страницы Firestore: запрос StartAfter с DocumentSnapshot не работает

Сообщение Anonymous »

У меня есть список предложений/предложений, сохраненный в моей базе данных Firestore. Я хочу получить первые 3 предложения, отсортированные по скидкам в порядке убывания, т. е. сначала идут предложения с самой высокой скидкой, затем следующие по величине и так далее. Я извлекаю их сегментами по 3.

Изображение


Изображение

Я пытаюсь добиться того же, используя код Android. Итак, первыми должны идти первые 3 элемента со скидкой 55,44,28, потом 27,27,21 и наконец 19,4.

Код: Выделить всё

class ContentGenerationActivityV1 : AppCompatActivity() {

var lastDocument : DocumentSnapshot?= null
lateinit var filterQuery: Query

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_content_generation)

val doc = FirebaseFirestore.getInstance().collection("steal-deals").document("deals")

filterQuery = doc.collection(getTodayTimeStamp().toString())
.orderBy("discount", Query.Direction.DESCENDING)

filterFetchButton.setOnClickListener {
if(lastDocument == null){
fetchFirstFew()
} else {
fetchMore()
}
}
}

//Get first 3 elements
fun fetchFirstFew(){

Log.d("N/W CALL ::", "FIRST")

filterQuery.limit(3) .get()
.addOnSuccessListener { result ->

lastDocument = result.documents.last()

for (document in result) {
Log.d("DEAL :: ", "${document.id} => ${document.data}")
}

}

}

//Get the next 3 elements
fun fetchMore(){

Log.d("N/W CALL ::", "SECOND")

filterQuery.startAfter(lastDocument)
.limit(3).get()
.addOnSuccessListener { result ->

lastDocument = result.documents.last()

for (document in result) {
Log.d("DEAL :: ", "${document.id} => ${document.data}")
}

}
}
Но он всегда возвращает первые три элемента (55,44,28), несмотря ни на что.
[img]https: //i.sstatic.net/taRyH.png[/img]


Пожалуйста, помогите мне добиться того же.

Подробнее здесь: https://stackoverflow.com/questions/579 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»