2016-07-05 95 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

再次檢查我已經添加了我的數據庫結構 –

相關問題