在我的应用程序中,用户可以输入分数并将其存储在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的更多信息。

10-08 07:12