2016-03-15 53 views
0

我很難使用Firebase查詢結果。使用以下代碼:如何從一個模塊中獲取Firebase查詢中的所有結果

 ref.queryOrderedByChild("gender") 
     .queryEqualToValue("female") 
     .observeEventType(.ChildAdded, withBlock: { snapshot in 
     print("result: \(snapshot) ") 
    }) 

「結果」打印3次。我期望所有結果的單個數組(類似於Parse上的查詢),而這將在3個不同的時間打印出來。

此處的最終目標是將所有結果附加到數組。但是,我不知道該怎麼做,因爲我不知道有多少元素會從服務器返回。

我認爲一定有一些簡單的東西我在這裏想念。

回答

1

看來這是簡單的東西,我失蹤了。將事件類型從.ChildAdded更改爲。值可解決此問題。希望這可以幫助別人...

var resultArray:[AnyObject] = [] 
     ref.queryOrderedByChild("gender") 
      .queryEqualToValue("female") 
      .observeEventType(.Value, withBlock: { snapshot in 

       for item in snapshot.children{ 
        resultArray.append(item) 
       } 
       print("Results Array: \(resultArray)") 
       print("Results Array Count: \(resultArray.count)") 

     }) 
+0

.value返回節點內的所有內容;如果那是1M的孩子,你一次就能得到所有的人。 .child添加另一方面,每次返回一個孩子,並且還附加一個觀察者,以便您的應用程序將被通知添加的任何新孩子。 – Jay

相關問題