Make A Top Ten Of The Best Players Using Firebase Database
I am new in Firebase Database and I'm struggling with this problem. What I want to achieve is: show a top ten of the best players based on their 'hits'. I know I could use firebase
Solution 1:
I think you missing two things:
- a
limitToLast(10)
so that you get the 10 highest scores only - use
.orderByChild("easy/hits")
, since that's where the value is stored
So:
Querymquery= FirebaseDatabase.getInstance().getReference()
.child("player")
.orderByChild("easy/hits")
.limitToLast(10);
Note that a Map
is inherently unordered, so not a good structure to keep an ordered list in. You'll want to use some List
structure for that.
publicvoidonDataChange(DataSnapshot dataSnapshot) {
List<String> names = newLinkedList<String>();
for (DataSnapshotpostSnapshot: dataSnapshot.getChildren()) {
String key = postSnapshot.getKey();
String name = postSnapshot.child("easy/name").getValue(String.class);
names.add(0, name);
}
}
You'll note that I call names.add(0, name)
. This ensures that the results end up in the list in descending order, like you'd expect on a leaderboard.
Post a Comment for "Make A Top Ten Of The Best Players Using Firebase Database"