2016-11-26 88 views
2

我有這樣的JSON結構上我的火力點數據庫:獲取JsonArray從火力

{ 
    "companies": [{ 
    "name": "Soft", 
    "position": "Developer", 
    "location": "NY", 
    "start": 1462060800, 
    "end": 1470009600, 
    "description" : ""}, 
    { 
    "name": "Xpert", 
    "position": "Developer", 
    "location": "London", 
    "start": 1456790400, 
    "end": 1462060800, 
    "description" : ""}, 
    { 
    "name": "AXinformation", 
    "position": "Developer", 
    "location": "Paris", 
    "start": 1388534400, 
    "end": 1456790400, 
    "description" : " "}, 
    ..... 
    ..... 
    ..... 

我試圖獲得這些數據做這樣的事情在我的代碼

public void onCallingFireBaseExperience() { 
     final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
     final DatabaseReference myRef = database.getReference("companies"); 
     myRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       for (DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){ 
        Log.d(Constans.LOG, dataSnapshot1.child("name").getValue().toString()) 
       } 

      } 

      @Override 
      public void onCancelled(DatabaseError error) { 
       Log.d(Constans.LOG, "Failed to read value.", error.toException()); 

      } 
     }); 
    } 

但我始終面臨着一個在我的記憶logcat中位置

.google.firebase.database.DataSnapshot $ -1 @ f264efd

我在做什麼錯了?我如何迭代數據?

回答

1

這是因爲火力地堡不支持存儲陣列本身

火力地堡有數組沒有原生支持。如果你存儲一個數組,它實際上被存儲爲一個「整數」作爲鍵名的「對象」。

請從官方博客火力地堡檢查此link獲得爲什麼數組不支持的更多信息,你應該如何正確地組織你的數據,以彌補它。

因此,基本上,根據Firebase,您構建數據的方式不正確,因爲其中dataSnapshot.getChildren()根本不會給您任何子女。