javascript - 使用 GEOFirestore 获取附近的 GEO 结果
问题描述
我正在使用 GeoFirestore 在 Cloud Firestore 上编写一个云函数,以根据中心和半径查询附近的位置。
初始化代码如下所示
const firebase = require('firebase');
const admin = require('firebase-admin');
const functions = require('firebase-functions');
const GeoFirestore = require("geofirestore").GeoFirestore;
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
要查询的JS代码是
const object = db.collection('UserObject');
var geoFirestore = new GeoFirestore(object);
const geoQuery = geoFirestore.query({
center: new firebase.firestore.GeoPoint(17.500362, 78.587374),
radius: 1
});
geoQuery.on('ready', () => {
var locations = geoQuery._locationsTracked;
var keys = [];
locations.forEach(function (locationMap, key) {
if (typeof locationMap !== 'undefined' && locationMap.isInQuery) {
keys.push(locationMap);
}
});
response.status(200).json(keys);
});
我是 GeoFirestore 库的新手。我的问题是,这是获取附近位置的正确实现,还是有其他方法可以使用此库查询附近位置?
解决方案
This kind of needs a massive reworking, but the solution will be simpler (code explained in comments):
const object = db.collection('UserObject');
const geoFirestore = new GeoFirestore(object);
const geoQuery = geoFirestore.query({
center: new firebase.firestore.GeoPoint(17.500362, 78.587374),
radius: 1
});
// Where we will store the results
const results = [];
// As documents come in, push them into our results
geoQuery.on('key_entered', (key, document) => results.push(document));
// After the query is initially complete we then send the results to the client
geoQuery.on('ready', () => response.status(200).json(results));
推荐阅读
- jquery - TinyMCE json image_list 和图像的标题属性
- swift - 如何检查 xcode 断开设备上的错误?
- kubernetes - 如何在 Kubernetes 中阻止来自特定命名空间的流量
- c++ - 为 typedef 结构赋值
- javascript - 如何计算日期范围数组中日期的出现次数:JavaScript
- c# - 如何忽略某些属性以及这些属性下的所有内容?
- java - 使用 Spring mongo 使用对象的 2 个属性计数查询
- c# - 如何使用 MVC asp.net 制作具有无限嵌套子类别的列表
- html - 相对位置没有发生响应性
- php - 找到所有