就目前情况而言geofire
sort 用作进行地理查询的索引,并提供您想要的文档的键(它将存储在单独的“集合”中)。
你应该使用geofire
和一个单独的“集合”(称之为活动场所)
var firebaseRef = firebase.database().ref('eventPlaces');
var geoFire = new GeoFire(firebaseRef);
现在您可以使用它作为您的索引events,并且可以像这样向其中添加项目。
geoFire.set('-K_Pp-3RBJ58VkHGsL5P', [40.607765, -73.758949]);
您的 Firebase RTDB 现在将如下所示:
{
'events': {
'-K_Pp-3RBJ58VkHGsL5P': {
// All your data here
}
},
'eventPlaces': {
'-K_Pp-3RBJ58VkHGsL5P': {
'g': 'dr5x186m7u',
'l': [40.607765, -73.758949]
}
}
}
所以最后当你查询你的geoFire
:
geoFire.query({
center: [40.607765, -73.758949],
radius: 10
}).on('key_entered', (key, location, distance) => {
console.log(key + ' entered query at ' + location + ' (' + distance + ' km from center)');
});
您最终将返回文档的密钥,您可以为此单个文档执行正常的 Firebase 查询。