android - Firebase Android 排行榜系统
问题描述
我有代码:
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() {
...
据我所知,您的其余代码可以保持不变。
另请参阅有关排序和过滤数据的 Firebase 文档。
推荐阅读
- ios - iOS-无法将“字符串”类型的值转换为预期的参数类型“数据”
- html - Node Js数据拆分并错误附加
- c# - 如何使用 Microsoft.Office.Interop.Outlook 创建默认配置文件并启动 Outlook 客户端 (GUI)
- python - Tensorflow:获取所有以“Add”开头的张量
- javascript - 处理到 P5 — 如何转换?
- angular - 以角度传递参数获取httpclient请求
- javascript - Jquery html.() 与 Django,定期用 AJAX 替换完整的网页
- python - Python Pandas Merge 每个只找到一个匹配项
- html - 前绝对位置 - 垂直中心
- c# - 异步任务超时