私はFirebaseを使用して、最後にスキャンした緯度と経度でユーザーを保管しています。近くの場所への問い合わせ
エントリは次のようになります。ユーザーは、特定の「検索」ボタンを押すたび
"Bdhwu37Jdmd28DmenHahd221" : {
"country_code" : "at",
"firstname" : "John",
"gender" : "m",
"lat" : 11.2549387,
"lon" : 17.3419559
}
、私は、要求を送信した人に最も近い人々を取得するために私のFirebase機能が欲しいです。
Firebaseは1つのフィールドの後にクエリーを許可するだけなので、いくつかの範囲制限とそのフィールドのクエリを持つ種類のcountry_codeを追加することにしました。しかし、特定の国のすべてのユーザーを読み込んだ後、特定のユーザーと同じ国の他のすべてのユーザーとの間の最小距離を確認すると、それはまだ非常に遅いです。
既に5人のユーザーがいる場合、関数は結果を得るのに40秒かかる。
私は複合インデックスについても読んだことがありますが、何とか緯度と経度を組み合わせて両方のフィールドを照会する必要があります。
ここで2番目と3番目のクエリを取得する方法はありますか(たとえば、同じcountry_codeを検索してから同様の緯度と経度を検索する)か、サーバーコード内でこれを解決する必要がありますか?
https://github.com/firebase/geofire – cartant