私はプロジェクトでFirebaseを使用していますが、クエリの仕組みについて頭を悩ませています。私は現在のユーザーの場所の特定の半径内にある他のユーザーを照会して見つけようとしています。Geofire-js:瞬時の場所がgeoQueryと一致するすべてのキーを返します
私はgeoQueryを作成できますが、半径の範囲内にあるユーザーの場所を返す方法がわかりません。
key_entered
は、DB内の場所が変更された場合にのみトリガーされるようです。私のすべての場所は一度設定されるとすべて静的なので、クエリを実行して、瞬間的な場所がクエリの半径内にあるすべてのユーザーを返します。
これはGeofireで可能ですか?
私の位置情報は、次のようにFirebaseに保存されます。
users {
uid: {
location: {
g: 'GeoHash',
l: [lat, long]
}
}
}
は、ここに私のクエリです:
let geoQuery = geoFire.query({
center: [currentUser.location.l[0], currentUser.location.l[1]],
radius: 1000
});
'key_entered'は、場所が静的な値であっても変更されていなくても、実際に起動されます。 Firebaseの 'value'イベントが初期値で一度起動されるのと同様に、' GeoQuery'が最後に変更された後に作成されたとしても、 'GeoQuery'に一致するすべての値に対して' key_entered'が発生します。 – jwngr