2016-09-08 47 views
1

我不知道我在做什麼錯誤!我只是想從Firebase數據庫獲取數據並對每個結果進行迭代並將它們放入數組中。我嘗試了不同的方法。但是他們都返回一次一個結果到數組中的結果。我有數據,如下面:將Firebase數據追加到Swift ios中的數組

{ 
     "1400001" : { 
     "HHtype" : 3, 
     "Sesgrup" : 4, 
     "lg_Et harcaması" : 0, 
     "lg_Total Harcama" : 3.11 
     }, 
     "1400002" : { 
     "HHtype" : 1, 
     "Sesgrup" : 4, 
     "lg_Et harcaması" : 1.2, 
     "lg_Total Harcama" : 3.15 
     }, 
     "1400004" : { 
     "HHtype" : 3, 
     "Sesgrup" : 4, 
     "lg_Et harcaması" : 1.18, 
     "lg_Total Harcama" : 3.06 
     }, 
     "1400005" : { 
     "HHtype" : 4, 
     "Sesgrup" : 3, 
     "lg_Et harcaması" : 2.21, 
     "lg_Total Harcama" : 3.74 
     }, 
     ....... 

而且,我使用的代碼如下:

func sen(){ 
     var rootRef: FIRDatabaseReference! 
     var refHandle: UInt! 
     var haneRef: FIRDatabaseReference! 
     var numbersArray = [Int]() 



     rootRef = FIRDatabase.database().reference() 
     haneRef = rootRef.child("SES2014") 


     haneRef.queryOrderedByChild("lg_Et harcaması").queryLimitedToLast(4).observeEventType(.ChildAdded, withBlock: { (snapshot) in 
      let hhtype = snapshot.value!["HHtype"] as? Int 
      numbersArray.append(hhtype!) 
      print(numbersArray) 



     }) 

    } 

And,結果是:

[3] 
[3, 1] 
[3, 1, 4] 
[3, 1, 4, 4] 

我想只有最後一個數組:[3,1,4,4]

我該怎麼做?謝謝

回答

0
func sen(){ 
     var rootRef: FIRDatabaseReference! 
     var refHandle: UInt! 
     var haneRef: FIRDatabaseReference! 
     var numbersArray = [Int]() 



     rootRef = FIRDatabase.database().reference() 
     haneRef = rootRef.child("SES2014") 

     let queryCount = 4 
     haneRef.queryOrderedByChild("lg_Et harcaması").queryLimitedToLast(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in 
      let hhtype = snapshot.value!["HHtype"] as? Int 
      numbersArray.append(hhtype!) 
      queryCount -= 1 
      if queryCount <= 0 { 
       print(numbersArray) 
      } 



     }) 

    } 
+0

非常感謝!它完美的作品 –

+0

如果你的裁判沒有足夠的4個孩子,這將是錯誤的 –

+0

不要擔心,我的裁判有9000個孩子。我只在這裏發佈4.再次感謝 –