何らかの理由で、Geofire クエリは、半径が正確に 1197 以上に設定されている場合にのみアイテムを返します。それ以下では何も返されません。データが返されて距離を記録すると、それらはすべて 1 km 未満であるため、これは意味がありません。
これについてのアイデアはありますか?
コード:
this.firebaseRef = new Firebase("<my firebase - this is fine>");
this.geoFire = new GeoFire(this.firebaseRef);
this.geoQuery = this.geoFire.query({
center: [50.72001, -1.8800],
radius: 1197
});
this.geoQuery.on("key_entered", function(key, location, distance){
console.log(key + ', ' + location + ', ' + distance);
});
私は React を使用していることに言及する必要があります。これは componentWillMount メソッドにあります。
ありがとう!
更新: Geofire では、データベースを検索するために Geohash が必要なようです。そのため、問題を解決するために、lat/lng を geohash に変換し、それも保存しました。