2016-07-05 34 views
3

如何使用更新的firebase命令从Firebase获取所有Child的Java对象的ArrayList,目前我正在使用下面的方法但无法获取列表。下面如何从Firebase获取所有Child的Java对象的ArrayList

ValueEventListener postListener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       // Get Post object and use the values to update the UI 

       if(dataSnapshot!=null){ 
        for (DataSnapshot postSnapshot:  dataSnapshot.getChildren()) { 
         UserDataClass post = postSnapshot.getValue(UserDataClass.class); 
         members.add(post); 
        } 

       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       // Getting Post failed, log a message 

      } 
     }; 
     mDatabaseRef.addValueEventListener(postListener); 

是datasnapshot是从火力点回来,但我没能得到期望的结果出来。

DataSnapshot { key = 12345, value = {Members={00000000={phoneNo=00000000, longitude=73.0703307, latitude=33.6396975, password=qwertyuiop, CName=00000000, admin=true, name=Anwar Kamal}, 03028084374={phoneNo=03028084374, longitude=73.0701292, latitude=33.6397129, password=qwerty, CName=00000000, admin=false, name=Nehal Khan}, 03028084516={phoneNo=03028084516, longitude=73.0702659, latitude=33.6397622, password=qwerty, CName=03035356317, admin=false, name=Jamal Khan}}} } 

我想要的所有成员

FireBase Database Structure

和我的java对象的名单是

public class UserDataClass { 
    public double latitude; 
    public double longitude; 
    public String Name=""; 
    public String password=""; 
    public String phoneNo=""; 
    public String CircleName=""; 
    public boolean isAdmin=false; 
} 
+0

请发表您的火力地堡数据结构 –

+0

请火力地堡数据结构中增加 –

+0

@AnwarKamal什么问题或错误,你得到些什么? –

回答

1

ValueEventListener有另一个目的。 您应该使用ChildEventListenerdataSnapshop.getValue()来实现你想要的东西,例如:

ChildEventListener childEventListener = new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) { 

     UserDataClass post = postSnapshot.getValue(UserDataClass.class); 
     members.add(post); 
    } 

    //... 

注: 你应该使用侦听与当前firebase_referanceUsers表。因此,你应该用你的Members表的完整路径是有色

mDatabaseRef.child("Members").addChildEventListener(childEventListener); 

通知更换

mDatabaseRef.addValueEventListener(postListener); 

,我想不出路径。

你可以找到整个文档here

好运

+0

我已经试过这个东西,但同样的结果我也更新了我的问题,添加一些信息,请再次检查。 –

+0

你可以添加你的'mDatabaseRef'吗?和你的'数据库结构' –

+0

再次检查我已经添加了我的数据库结构 –

相关问题