query from firestore data consultas collection firebase google-cloud-firestore

firebase - from - firestore query collection



¿Cómo consultar los GeoPoints más cercanos en una colección en Firebase Cloud Firestore? (4)

En lugar de usar servicios de terceros como Algolia, usaría la nueva biblioteca que salió para iOS y Android que replica GeoFire para Firestore. La nueva biblioteca, llamada GeoFirestore , está completamente documentada y bien probada. Ya he usado esta biblioteca en muchos proyectos de demostración y parece funcionar perfectamente. ¡Dale un tiro!

El nuevo Firestore DB me permite almacenar GeoPoints. ¿Hay alguna forma de consulta basada en ellos?

Entonces, por ejemplo, si cada uno de mis documentos de colecciones tiene un campo de location del tipo geopoint . ¿Cómo puedo obtener los 10 documentos más cercanos a una coordenada arbitraria?

La documentación no parece cubrir esto. Intenté cosas como esta:

someRef.where(''location'', ''>'', geopoint).limit(10).get();

Obviamente, esto no tiene mucho sentido, pero solo estoy probando algunas cosas aquí 😅



Se ha introducido un nuevo proyecto desde que @problemsofsumit hace esta pregunta por primera vez. El proyecto se llama GEOFirestore.

Con esta biblioteca puede realizar consultas como documentos de consulta dentro de un círculo:

const geoQuery = geoFirestore.query({ center: new firebase.firestore.GeoPoint(10.38, 2.41), radius: 10.5 });

Puede instalar GeoFirestore a través de npm. Tendrá que instalar Firebase por separado (porque es una dependencia entre pares de GeoFirestore):

$ npm install geofirestore firebase --save

Puede vincularlo a través de cdn: https://cdn.jsdelivr.net/npm/[email protected]/dist/geofirestore.min.js


Todavía no hemos expuesto las geoqueries, por lo que actualmente no hay una manera de hacerlo.

Históricamente, la base de datos en tiempo real de Firebase utilizaba geohashes en una biblioteca llamada GeoFire pero dado que planeamos exponer las geoqueries reales en el futuro cercano, no hemos actualizado esa biblioteca a Firestore. Sin embargo, para aprender a hacer algo similar usted mismo, eche un vistazo a este video .