I will test a request like this
let ref = firestore().collection(COLLECTION)
ref = ref.where('date', "in", ['01/01/2022', '02/01/2022'])
ref = ref.where('valueP', '>', 12)
ref = ref.where('valueP', '<', 32
ref = ref.orderBy('valueP')
if (filterType) {
ref = ref.where('product.type', '==', filterType) // filterType is a string variable
}
if (filterCategory) {
ref = ref.where('product.category', '==', filterCategory) // filterCategory is a string variable
}
// pagination
ref = ref.orderBy(firebase.firestore.FieldPath.documentId(), 'asc')
if (paginationStart) {
ref = ref.startAfter(paginationStart) // paginationStart is a documentid
}
ref = ref.limit(10)
ref.get()
In the first time , my request work. I have 10 documents.
I save my last document id in the variable 'paginationStart'. It's ok
In the second time , my request have the filter 'startAfter' but i have the same data like the first time.
I had something wrong with the filter 'startAfter' ?
Thanks for help.
CodePudding user response:
Firebase documentation suggest the startAfter to be the entire document not only the document id
more details here