Таким образом, проблема с этими дополнительными функциями, такими как лимит, заключается в том, что для работы запросов мы агрегируем несколько запросов при выполнении гео-запроса.
Мы создаем массив запросов с геохэшами, которые находятся вокруг выбранной вами области. Таким образом, мы можем применить ограничение к каждому из этих запросов, но при агрегировании к каждому запросу будет применено ограничение, и совокупность будет больше. Итак, на стороне клиента я должен повторно применить предел. Это очень выполнимо, это не очень эффективно.
На данный момент он не поддерживается, но я надеюсь применить его в будущем. Одна вещь, которую вы могли бы сделать, это следующее ...
import * as firebase from 'firebase';
import { GeoQuery, GeoQuerySnapshot } from 'geofirestore';
const collection = firebase.firestore().collection('somecollection');
// APPLY LIMIT HERE
const limitQuery = collection.limit(50);
const query = new GeoQuery(limitQuery).near({
center: new firebase.firestore.GeoPoint(39.76068, -104.98471),
radius: 10
});
query.get().then((value: GeoQuerySnapshot) => {
value.docs.forEach(doc => {
console.log(doc);
});
});
Однако в этом случае к каждому запросу геоквери будет применяться ограничение, а не совокупность. Вы можете повозиться с желаемым лимитным числом, чтобы приблизиться к клиенту. (Вы увидите, что эта функция должным образом интегрируется в феврале)