在我的应用程序中,用户可以输入分数,并将其存储在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检索的结果进行排序? 我希望结果按照从最低到最高的净得分进行排序?
答案 0 :(得分:3)
我很确定您要使用:
mFirebaseDatabase.getReference().child("Scores").child("Net_and_Gross_Scores_Week_17th_March _2018 ")
.orderByChild("Net");
您可以通过撤消存储孩子的ArrayList
来撤消搜索顺序。在设置ArrayAdapter
之前添加以下行:
Collections.reverse(array);
这里重要的部分是orderByChild
方法。我只是假设您的分数值存储在名为&#34;得分&#34; 的孩子中,但您当然可以将其调整到实际值。
有关订购参考资料的更多信息can be found here。
答案 1 :(得分:0)
Here您可以找到检索已排序数据所需的所有信息。
例如,在您的情况下
Query query = mFirebaseDatabase.getReference().child("Scores")
.child("Net_and_Gross_Scores_Week_17th_March _2018 ").orderByChild("Net");