【问题标题】:How to get all results from a Firebase Query in one block如何在一个块中获取 Firebase 查询的所有结果
【发布时间】:2016-03-15 01:47:38
【问题描述】:

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

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

“结果”被打印 3 次。我希望所有结果的单个数组(类似于 Parse 上的查询)而不是单独打印 3 次。

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

我认为这里一定有一些我想念的简单的东西。

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    看来我错过了一些简单的事情。将事件类型从 .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 返回节点内的所有内容;如果那是 100 万个孩子,你会一次得到所有的孩子。另一方面,.childAdded 返回每个孩子,一次一个,还附加一个观察者,以便您的应用收到任何添加的新孩子的通知。
    猜你喜欢
    • 2021-06-15
    • 2018-12-06
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多