I'm using a Firebase database. My "Users" data looks something like this:
Users {
"38NFjDwCPAdkdvbzLb1VkFeaBIV2" : {
"points" : 10,
"userEmail" : "abc@hotmail.com",
"userName" : "Tom"
},
"pH3HWzu9SVbW56jwqCb55hHryAD2" : {
"points" : 17,
"userEmail" : "xyz@hotmail.com",
"userName" : "Jerry"
}
}
Now I want to display Users according to their points, in descending order. I can use orderByChild("points")
but that only displays the list in an ascending order.
This is what I'm doing right now:
public class Leaderboards extends AppCompatActivity {
private ListView leaderboardsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leaderboards);
leaderboardsList = (ListView) findViewById(R.id.leaderboardList);
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("Users");
DatabaseReference carsRef = rootRef.child("Card");
Query qUserRef = userRef.orderByChild("points");
FirebaseListAdapter<User_DB> firebaseListAdapter = new FirebaseListAdapter<User_DB>(this, User_DB.class, android.R.layout.simple_list_item_1, qUserRef ) {
@Override
protected void populateView(View v, User_DB model, int position) {
String points = String.valueOf(model.getPoints());
((TextView)v.findViewById(android.R.id.text1)).setText(points);
}
};
leaderboardsList.setAdapter(firebaseListAdapter);
}
}
What changes do I make to the above code in order to display my list in descending order, according to each user's points?