Внутренне GeoFirestore получает свои результаты по
this._query.orderBy('g').startAt(query[0]).endAt(query[1])
Выкладывая это последовательно, расширяя ваше collectionRef
, происходит нечто подобное:
const collectionRef = firebase.firestore().collection('Books')
collectionRef.where('d.details.BookType',"==",BookType)
collectionRef = collectionRef.where('d.details.bookage',"<=",age)
collectionRef = collectionRef.orderBy('d.details.bookage')
collectionRef.orderBy('g').startAt(query[0]).endAt(query[1])
Проблема возникает из-за того, что .startAt
относится к вашему первому orderBy
, который равен d.details.bookage
, поэтому он начинает с курсора, где d.details.bookage
равен query[0]
. * * 1017
Видя, что query[0]
является геохэшем, он переводится в нечто вроде , начиная с курсора, где d.details.bookage
равно w2838p5j0smt
, отсюда и ошибка.
Решение
Есть два способа обойти это ограничение.
- Ждите обновления Geofirestore, над которым, я думаю, @MichaelSolati уже работает.
- Сортировка результатов после получения результатов из Geofirestore's
onKey