Firebase retrieve highest 100 score

Solution 1:

Firebase queries are always in ascending order. So you'll need to get the last 100, instead of the first 100.

Query queryRef = myRef.orderByChild("score").limitToLast(100);

Then client-side you'll need to reverse the items.

Alternatively you can add a inverted property to your items invertedScore: -99. If you do that, you can order by that inverted score and won't have to reverse the array.

This scenario has been covered frequently before. I highly recommend you study some of these:

  • data sorting in firebase
  • Firebase Leaderboard, best Implmentation. SQL Joins and orderby (as recently as yesterday)
  • Display posts in descending posted order
  • Firebase Data Desc Sorting in Android
  • Swift - How to create Sort query as Descending on Firebase?