[英]Firebase Android Leaderboard system
我有代碼:
listView = (ListView) findViewById(R.id.list);
list = new ArrayList<String>();
arrayAdapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, list);
leaderBoard();
}
FirebaseAuth auth = FirebaseAuth.getInstance();
public void leaderBoard(){
database.getReference().child("db/auth/user/").addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
list = new ArrayList<String>();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
System.out.println("The score is: " + snapshot.child("score").getValue());
String s = snapshot.child("name").getValue() + " " + snapshot.child("score").getValue();
list.add(s);
arrayAdapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}
});
我的目標是顯示一個包含用戶姓名和分數的列表,到目前為止一切順利,如圖所示。
但現在我需要列表根據分數按升序顯示用戶和積分。 有人能幫我嗎?
要根據score
屬性的值對子項進行排序,您可以執行以下操作:
database.getReference().child("db/auth/user/").orderByChild("score").addValueEventListener(new ValueEventListener() {
...
據我所知,您的代碼的 rest 可以保持不變。
另請參閱有關排序和過濾數據的 Firebase 文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.