Skip to content Skip to sidebar Skip to footer

Android Firebase: How To Simply Get All The Values Under A Certain Key?

To get it out of the way, yes there is a similar question on SO, but it doesn't explain exactly what my situation asks for I think. In the Firebase Realtime Database, I have a jso

Solution 1:

This is what I was looking for:

settingsRef.addListenerForSingleValueEvent(newValueEventListener() {
        @OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()){
                // easyString value = dataSnapshot1.getValue(String.class);                    
            }
        }

        @OverridepublicvoidonCancelled(DatabaseError databaseError) {

        }
    });

Solution 2:

It's suggested that you create a class for a template with getters, empty and parameterised constructors as shown

publicclassTemplate {

    String name;
    ArrayList<String> list;

    publicTemplate() {
    }

    publicTemplate(String name, ArrayList<String> list) {
        this.name = name;
        this.list = list;
    }

    publicStringgetName() {
        return name;
    }

    publicArrayList<String> getList() {
        return list;
    }
} 

now you could easily do this

    databaseReference.addListenerForSingleValueEvent(newValueEventListener() {
        @OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {

            for(DataSnapshot data : dataSnapshot.getChildren()){

                Template template = data.getValue(Template.class);
                // use this object and store it into an ArrayList<Template> to use it further

            }

        }

        @OverridepublicvoidonCancelled(DatabaseError databaseError) {

        }
    });

Solution 3:

something like this code :

mTemplateRef.addListenerForSingleValueEvent(
            newValueEventListener() {
                @OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {
                // dataSnapshot  itself  a child of   "templates"   
         DataSnapshot messageSnapshot= dataSnapshot;
                    DataTypeauthor=         (DataType)messageSnapshot.child("array").getValue();

                    // somehow get the values here

                }
    });

Post a Comment for "Android Firebase: How To Simply Get All The Values Under A Certain Key?"