2016-07-10 10 views
0

firebaseを使用してデータを保存しましたが、firabseからデータリスト を取得できませんでした。具体的には、personオブジェクトのarraylistを取得します。 は、ここでは、クラスの人google firebase(android)からデータを取得する

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; 
} 

}

であり、ここで、データ構造

enter image description here

+0

データ構造を使用してfirebaseデータをフェッチすることができますか? – uguboz

答えて

1

Ugur Bも答え正しいです。ここで、あなたはまた、ValueEventListenerすぎ...

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()); 
       } 
      }); 
2

あなたはイベントリスナーのいずれかでデータをフェッチすることができます。ここに子イベントリスナーがあります。

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); 
関連する問題