OrderByChild и дочерний элемент имеет определенное значение

Как я могу реализовать ранжирование, в котором пользователь может видеть первую десятку для девочек или для мальчиков? Я знаю, как создать рейтинг, в котором можно увидеть первую десятку всех пользователей, но я понятия не имею, как создать рейтинг, в котором показаны только девочки или мальчики. (Я знаю, что могу изменить узел пользователей, но это невозможно, потому что тогда я не смог бы ранжировать всех пользователей)

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

 users
   /$userId
       /points      
       /sex
0
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как поясняется в документация, «одновременно можно использовать только один метод упорядочения. Многократный вызов метода упорядочения в одном и том же запросе вызывает ошибку».

Наиболее распространенный подход к решению этого «ограничения» заключается в дублировании ваших данных, что довольно распространено в мире NoSQL.

Тогда у вас будет следующая модель данных:

users
   /$userId
       /points      
       /sex
femaleUsers
   /$userId
       /points      
maleUsers
   /$userId
       /points 

Вы должны использовать метод update() для синхронизации различных узлов.

Другие вопросы по теме