2016-09-08 9 views
-1

これは一般的にはすばやい質問ですが、役立つ場合は:これらのユーザーをすべてFirebaseに保存しています。距離に最も近いユーザーのリストを並べ替えるにはどうすればいいですか?

私はFirebaseの呼び出しで控えめにしようとしています。距離でソートされた100人の最も近いユーザーを表示したい場合、最良の選択肢が何であるか不思議です。

私はCoreLocationで半径で距離を計算することに精通していますが、私はバックエンドを考えています。 Firebaseからすべてのユーザを引き出し、辞書で叩いて、座標キーでソートするのが最善の方法でしょうか?私は代替案が見当たらない。

ありがとうございました!

+0

を解決するのに役立ちます、最善のアプローチは[Geofire]を使用することであると思います-objc)。このライブラリはジオハッシュを使用して、サーバー上の距離による効率的な照会を可能にします。 –

答えて

0

答えは少し奇妙です。しかし、ここであなたは値でソートされたvospolzovatsyaすることができます。

各ユーザーのラベルを離れて置くことができ、火器を書くことができます。タグは、アプリケーションまたはサイトを実行するときに更新できます。あなたはテーブルの距離に追加するだけです。

この例は、より明確になります。

enter image description here

問合せは、あなたが距離によってソートされたリストを取得します。この

const ref = firebase.database().ref('Distance');

ref.orderByChild('distanceFrend').limitToFirst(100).on('value', snap => { .... } 

のようになります。最初は最も近い。

私はhttps://github.com/firebase/geofire(あなたがFirebaseデータベース内のユーザを保存している場合の例では、問題

+0

Webリクエストの例。私はSWIFTに慣れていません –

+0

ありがとうございました!だから、基本的には、各ユーザの距離オブジェクトを持ち、それが所属するユーザ階層からすべてのユーザまで距離を持つように提案されていますか? –

+0

はいと言うことができます。 実装の機会はたくさんあります。最終的に何を得たいかによって決まります。 ここで重要なのは、ユーザーからの距離の形でデータを送信することです。 –

関連する問題