Je stocke un score
pour chaque utilisateur de mon application dans firebase.
user {
name;
score;
}
Je souhaite afficher un classement avec les noms et les scores des 10 meilleurs utilisateurs (et le maintenir à jour en temps réel). Quel est le meilleur moyen d'y parvenir?
Réponses:
3 pour la réponse № 1Consultez l'exemple de classement pour savoir comment procéder: https://www.firebase.com/tutorial/#example/leaderboard
Le principe de base est qu’en plus de définir le nom et le score dans un objet utilisateur, vous pouvez utiliser setWithPriority
pour définir également une priorité pour elle. La priorité dans ce cas particulier peut être le score de l'utilisateur (s'il est numérique, il sera automatiquement trié pour vous). Vous pouvez ensuite utiliser le .limit(10)
requête pour obtenir une liste des 10 meilleurs utilisateurs.
Vous devrez également mettre en œuvre le child_added
, child_changed
et child_removed
événements pour gérer les cas d’un nouvel utilisateur entrant dans le top 10, d’une personne changeant de position et d’une personne sortant respectivement de la liste des 10 premiers.