Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android-Firebase RealTime Database orderByChild not working [duplicate]

I am doing everything as per documentation but don't know why I am not getting ordered data

My Query

 typeRef = myRef.child("DiscussionRooms").orderByChild("order");
     valueEventListener = typeRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if (dataSnapshot.getValue() != null) {

                Log.d(TAG, "Get Data" + dataSnapshot.getValue().toString());

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

My Database

enter image description here

My Database Rules

enter image description here

Response Logs

enter image description here

like image 599
Parvesh Monu Avatar asked Aug 24 '26 01:08

Parvesh Monu


1 Answers

To display the data ordered according to the order property, please use the following code:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference discussionRoomsRef = rootRef.child("DiscussionRooms");
Query orderQuery = discussionRoomsRef.orderByChild("order");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
    }
};
orderQuery.addListenerForSingleValueEvent(valueEventListener);
like image 100
Alex Mamo Avatar answered Aug 25 '26 15:08

Alex Mamo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!