Você pode realizar consultas geoespaciais em Cloud Firestore para criar serviços com reconhecimento de localização. Por exemplo, é possível encontrar a distância entre um usuário e pontos de interesse próximos, classificando-os do mais próximo ao mais distante.
Requisitos da edição
O recurso de pesquisa geoespacial exige um banco de dados da edição Enterprise do Firestore.
Antes de começar
Para realizar uma pesquisa geoespacial, primeiro crie índices geoespaciais para os campos que você precisa pesquisar.
Executar uma pesquisa geoespacial
Para realizar uma pesquisa geoespacial, use a expressão geoDistance no parâmetro query da fase search(...).
Somente o operador menor ou igual a (<=) é compatível. A distância é medida em metros.
Por exemplo, a consulta a seguir encontra todos os restaurantes a até 1.000 metros do geoponto listado.
Web
firestore.pipeline().collection('restaurants') .search({ query: field('location') .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* m */) });
iOS
firestore.pipeline().collection("restaurants") .search( query: Field("location") .geoDistance(GeoPoint(latitude: 38.989177, longitude: -107.065076)) .lessThan(1000) )
Android
firestore.pipeline() .collection("restaurants") .search(new SearchOptions() .withQuery(field("location") .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* meters */)));
Node.js
firestore.pipeline().collection('restaurants') .search({ query: field('location') .geoDistance(new GeoPoint(38.989177, -107.065076)) .lessThan(1000 /* m */) });