在我的应用程序中,用户可以输入分数并将其存储在Firebase中
myRef = mFirebaseDatabase.getReference().child("Scores").child("Net_and_Gross_Scores_Week_17th_March _2018 ");
private void showData(DataSnapshot dataSnapshot) {
ArrayList<String> array = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()){
LeaderBoardScores uInfo = ds.getValue(LeaderBoardScores.class);
array.add(" Net:" +uInfo.getNet() + " Name:" +uInfo.getFullName() + " Gross:" + uInfo.getGross()+ " Handicap:" + uInfo.getPlayerHandicap());
}
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
mListView.setAdapter(adapter);
}
有没有办法以数字方式对Firebase检索的结果进行排序?
我希望结果按净分数从最低到最高排序?
最佳答案
我很确定您要使用:
mFirebaseDatabase.getReference().child("Scores").child("Net_and_Gross_Scores_Week_17th_March _2018 ")
.orderByChild("Net");
您可以通过反转存储子级的
ArrayList
来反转搜索顺序。在设置ArrayAdapter
之前,请添加以下行:Collections.reverse(array);
这里的重要部分是
orderByChild
方法。我只是假设您的得分值存储在一个称为“分数”的孩子中,但是您当然可以将其调整为实际值。有关订购参考文献can be found here的更多信息。