如何在一个块中获取Firebase查询的所有结果

时间:2016-03-15 01:47:38

标签: ios swift firebase firebase-realtime-database

我很难使用Firebase查询结果。使用以下代码:

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

"结果"打印3次。我希望所有结果的单个数组(类似于Parse上的查询)与打印3次不同。

此处的最终目标是将所有结果附加到数组。但是,我不知道该怎么做,因为我无法知道有多少元素会从服务器返回。

我认为这里必须有一些简单的东西。

1 个答案:

答案 0 :(得分:2)

看来这是我想念的简单事。将事件类型从 .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)")

         })