2016-07-05 70 views
0

我的Android版本的應用程序出現了一些問題。我完成了iOS版本,並且正在開發Android數據部分。之後我得到了雨燕的快照,我可以簡單地說是這樣的:通讀Firebase快照 - Android

myList.addObject((snapshot.value["num"] as? String)!) 

然後,我有我需要的數字的一個不錯的清單。

到目前爲止,Android並不那麼簡單。這是我的數據結構和我在找什麼。

staffNUM 
    --staff 
     --12345677 
      -- num:112234 
     --2345689 
      -- num:090909 
     --44445677 
      -- num:999234 
     --6665689 
      -- num:888673 

由於iOS應用程序已被使用,所以無法更改數據的創建方式。

這裏有一個問題:

我有我的數據庫,它工作的參考。

mDatabase = FirebaseDatabase.getInstance().getReference(); 

這裏是我打電話數據庫後:

mDatabase.child("staffNUM/staff").addListenerForSingleValueEvent(
      new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        if (dataSnapshot.getValue() != null) { 
        Log.d("Snap", "" + dataSnapshot.getValue()); 
        StaffNum staffNum = dataSnapshot.getValue(StaffNum.class); 
        } else { 
         // something else happens 
         } 

我的快照結果是:

d /快:{員工= {12345677 = {NUM = 112234},{2345689 = {NUM = 090909},{2345689 = {NUM = 090909},{44445677 = {NUM = 999234},{6665689 = {NUM = 888673}}

解析數據的最佳方式是什麼?我只需要像我在Swift中那樣在應用程序中使用的列表。

編輯:

這裏是我添加

@IgnoreExtraProperties 
public class StaffNum { 
     public String num 

     public StaffNUM() {} 

     public StaffNUM(String num) { 
     this.num = num; 
     } 
     @Exclude 
     public Map<String, Object> toMap() { 
     HashMap<String, Object> result = new HashMap<>(); 
     result.put("num", num); 
     return results; 
     } 
    } 

如果我請Log.d( 「民:」 「」 + staffNUM.num)類; 我仍然得到

d/NUM ::空

+0

需要定義你的數據POJO的字段創建一個POJO的工作人員解析。一旦您定義了與您的數據匹配的Pojo類,只需執行以下這行:Staff staff = snapshot.getValue(Staff.class);'。參考 - https://www.firebase.com/docs/android/guide/retrieving-data.html – sha

+0

@sha我更新了當前的問題。我已經將您的答案植入,但第一次嘗試時卻沒有奏效。任何其他想法? –

回答

0

與您從火力地堡結構

@Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot d : dataSnapshot.getChildren()) { 
      Staff staff = d.getValue(Staff.class); 
      Log.d("Snap", "num: " + staff.getNum()); 
     } 
    } 
+0

謝謝,我沒有添加吸氣劑。我仍然被困在iOS中。 –