enegmz
enegmz

Reputation: 29

fetch data from google firebase (android)

I use firebase to store data , but I could not get the list of data from firabse ,Specifically I want to get arraylist of person object. here is the class person

public class Person {

private String name;
private String username;

public Person() {
}

public Person(String name, String username) {
    this.name = name;
    this.username = username;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

}

and here is data structure

enter image description here

Upvotes: 0

Views: 358

Answers (2)

Vinoth
Vinoth

Reputation: 9734

Ugur B answers also correct one. Here,You can also fetch firebase data by using the ValueEventListener too...

 ArrayList<String> arrayListVal = new ArrayList<String>();
 fbref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot snapshot) {

                    for (DataSnapshot postSnapshot : snapshot.getChildren()) {


                        Person person = postSnapshot.getValue(Person.class);

                        //Adding it to a ArrayList 
                        arrayListVal.add(person);

                    }
                }

                @Override
                public void onCancelled(FirebaseError firebaseError) {
                    System.out.println("Failed to fetch data: " + firebaseError.getMessage());
                }
            });

Upvotes: 1

ugur
ugur

Reputation: 3654

You can fetch the data with any of the event listeners. Here is with child event listener.

List<Person> persons = new ArrayList<>(); 

ChildEventListener listener = new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
               Person person = dataSnapshot.getValue(Person.class);
               persons.add(person);

            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {


            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {
                Person person = dataSnapshot.getValue(Person.class);
                persons.remove(person);

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {


            }

            @Override
            public void onCancelled(DatabaseError databaseError) {


            }
        };

        FirebaseDatabase.getInstance().getReference().child("persons").addChildEventListener(listener);

Upvotes: 2

Related Questions