Ios 如何在一个块中获取Firebase查询的所有结果
我很难处理Firebase查询结果。使用以下代码:Ios 如何在一个块中获取Firebase查询的所有结果,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我很难处理Firebase查询结果。使用以下代码: ref.queryOrderedByChild("gender") .queryEqualToValue("female") .observeEventType(.ChildAdded, withBlock: { snapshot in print("result: \(snapshot) ") }) “结果”打印3次。我希望所有结果都是一个数组(类似于对Parse的查询),
ref.queryOrderedByChild("gender")
.queryEqualToValue("female")
.observeEventType(.ChildAdded, withBlock: { snapshot in
print("result: \(snapshot) ")
})
“结果”打印3次。我希望所有结果都是一个数组(类似于对Parse的查询),而这将被分别打印3次
这里的最终目标是将所有结果附加到一个数组中。但是,我不知道如何做到这一点,因为我看不到任何方法可以知道有多少元素将从服务器返回
我想这里一定有我遗漏的简单的东西 看来这是我错过的一件简单的事情。将事件类型从.ChildAdded更改为.Value可以解决此问题。希望这能帮助其他人
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)")
})
.value返回节点内的所有内容;如果这是一百万个孩子,你会一次得到所有的。另一方面,childAdded会返回每个孩子,一次返回一个,并附加一个观察者,以便您的应用程序将收到添加的任何新孩子的通知。