I want to get highest scores in leaderboard. Here is my database:
Here is my rules:
And here is my code:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference newRef = database.getReference("tr/scores");
newRef.orderByChild("skor").limitToLast(3).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Gson gson = new Gson();
String value = gson.toJson(dataSnapshot.getValue());
Log.d("Debug",value);
}
@Override
public void onCancelled(DatabaseError firebaseError) {
Log.e("Debug","Error at firebase response.");
}
});
This returns 3 childs but not ordered by "skor" variable. I read the docs but the example in docs is:
{
"scores": {
"bruhathkayosaurus" : 55,
"lambeosaurus" : 21,
"linhenykus" : 80,
"pterodactyl" : 93,
"stegosaurus" : 5,
"triceratops" : 22
}
}
But my database has dynamic keys for each childs. Any idea?