'Sorting Score of every registered user's data in Firebase, Android

I want to show every user's score in sorted.

My database structure in Firebase console is looking like below

enter image description here

I have created two table one is Score and one is User,

In Score table, I use user's ID, GameA's Score, Game B's Score and Game C's Score

Now I want to show GameA's Score in sorted wise, each user can see sorted data in listview, so he can know that how much he is behind from others...

In Firebase, I have tried with Query but could not be able to get success in sorting,

   Query queryRef = mDatabase.orderByChild("scores").limitToFirst(100);
    queryRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                Score score=postSnapshot.getValue(Score.class);
                Log.d("test"," values is " + score.getScoreOfGameA()  + " " + score.getUserId());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

with above query result will comes but value is 0, null

it is like below

02-02 06:29:09.559 10791-10818/com.firebasedatabaselearn W/PersistentConnection: pc_0 - Using an unspecified index. Consider adding '".indexOn": "scores"' at / to your security and Firebase Database rules for better performance
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for oFAgix9TlUNS92R2VJaJbNYtH3z2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for FrJpw8SMzZYfbECuvhHvbxnbCmh2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn D/test:  values is 0 null
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for NnmawN5gMFVhwaGmZxXgUCPsDMb2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for oFAgix9TlUNS92R2VJaJbNYtH3z2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for RLEmo9Vyq8Rktwn6Cuz4d6vadml2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for FrJpw8SMzZYfbECuvhHvbxnbCmh2 found on class com.firebasedatabaselearn.module.Score
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn D/test:  values is 0 null

can anyone suggest me how can I achive this?



Solution 1:[1]

Finally after visiting this Firebase orderByChild and equalTo() queries don't work, I have achieved by below code

queryRef = mDatabase.child("scores").orderByChild("scoreOfGameA").limitToLast(100);
        queryRef.addValueEventListener(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                    Score score=postSnapshot.getValue(Score.class);
                    Log.d("test"," values is " + score.getScoreOfGameA());
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community