我正在使用Firebase數據庫。我的「用戶」數據看起來像這樣:在ListView中顯示來自Firebase的降序順序
Users {
"38NFjDwCPAdkdvbzLb1VkFeaBIV2" : {
"points" : 10,
"userEmail" : "[email protected]",
"userName" : "Tom"
},
"pH3HWzu9SVbW56jwqCb55hHryAD2" : {
"points" : 17,
"userEmail" : "[email protected]",
"userName" : "Jerry"
}
}
現在我想顯示用戶根據他們的點,按降序。我可以使用orderByChild("points")
,但只能按升序顯示列表。
這是我現在在做:
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);
}
}
我怎樣更改上面的代碼,以顯示我的遞減順序列表,根據每個用戶的點?
沒有內置的方式以降序獲得結果。常見的解決方案是保留具有反向值的額外屬性(即'negativeScore')或做倒置客戶端(假設列表顯示在移動設備上,它永遠不會很長)。請參閱http://stackoverflow.com/questions/34156996/firebase-data-desc-sorting-in-android –
嘿謝謝你的想法。我會試着做你所說的關於製造另一個帶有負分的屬性。 –