Home > Blockchain >  Firebase : pagination with multiple 'orderBy' and 'orderBy' with FieldPath.docum
Firebase : pagination with multiple 'orderBy' and 'orderBy' with FieldPath.docum

Time:01-03

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

  • Related