Это очень распространенная проблема.Так как вы не прикрепили свою базу данных или свой код, я не могу дать вам правильный код того, как это сделать, но лучший способ получить ваших пользователей в том же порядке их оценки может быть сделан по базовому принципу..
Основной принцип заключается в том, что помимо задания имени и оценки в пользовательском объекте, вы можете использовать setWithPriority
, чтобы также установить для него приоритет.
Приоритетом в данном конкретном случае может быть оценка пользователя (если она числовая, она будет автоматически отсортирована для вас).Затем вы можете использовать запрос .limit(10)
, чтобы получить список 10 лучших пользователей.
Вам также нужно будет реализовать события child_added
, child_changed
и child_removed
для обработки случаевновый пользователь входит в топ-10, кто-то меняет позицию, а кто-то покидает список топ-10 соответственно.
Вы можете прочитать и узнать больше об этом здесь: https://www.firebase.com/tutorial/#example/leaderboard