2016-09-08 2 views
-1

Это скорее быстрый вопрос в целом, но если это помогает: я храню всех этих пользователей в Firebase.Как отсортировать список пользователей, ближайших к вам по расстоянию?

Так что я стараюсь быть консервативным с моими вызовами Firebase, и мне просто интересно, какой будет лучший вариант, если бы я хотел показать 100 самых близких пользователей, отсортированных по расстоянию.

Я знаком с вычислением расстояния радиусом с помощью CoreLocation, но я думаю о бэкэнд. Лучше всего на самом деле вытащить всех пользователей из Firebase, пощекотать их в словаре и отсортировать по координатным клавишам? Я не вижу альтернативы.

Спасибо, ребята!

+0

Если вы храните пользователь в базе данных Firebase, лучший подход заключается в использовании [Geofire] (https://github.com/firebase/geofire -objc). Эта библиотека использует гео-хеши, чтобы обеспечить эффективный запрос по расстоянию на сервере. –

ответ

0

Ответ немного странный. Но здесь вы можете воспользоваться сортировкой по значению.

Вы можете поместить этикетку для каждого пользователя на расстоянии и написать пожарную педаль. Теги могут обновляться при запуске приложения или сайта. Вам просто нужно добавить к столу расстояние.

Пример будет более четким.

enter image description here

Запрос будет выглядеть следующим образом

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

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

Вы получите список, отсортированный по расстоянию. Сначала самое близкое.

Я надеюсь, что пример поможет решить проблему

+0

Пример запроса для Интернета. Я не знаком с SWIFT –

+0

Большое спасибо! Итак, в принципе, вам предлагается иметь дистанционный объект для каждого пользователя и иметь все пользователи на расстоянии от иерархии пользователей, к которой он принадлежит? –

+0

Вы можете сказать «да». Существует множество возможностей для реализации. Это зависит от того, что в конечном итоге захочет получить. Главное здесь, чтобы отправить данные в виде расстояний от пользователя. –