Firebase Observe功能的问题

时间:2019-06-25 20:20:23

标签: swift firebase asynchronous firebase-realtime-database closures

几周前,我开始迅速发展,现在我不了解我的应用程序的进展情况。 我创建了一个类,其中包含许多应该在ViewContoller中使用的公共函数。 其中一些功能包含要从Firebase Realtime DB读取的代码,但我遇到了问题... 问题在于,在Firebase Observe之前,函数“ start”中的返回值比我的数组为空。

我读到我可以用Closure解决它。 我尝试过,但不知道如何解决。

我可以帮忙吗?

非常感谢

enter image description here

public func getYearFromDB(year:String,user:String,db:String)-> [String] {

    var array: [String] = []
    var dare: Float = 0
    var avere: Float = 0

    let ref = Database.database().reference()

    ref.child(db).child(user)
        .queryOrdered(byChild: "year")
        .queryStarting(atValue: year)
        .observe(.value, with: { ( snap) in

        let records = snap.value! as! NSDictionary

        for(record,_) in records {
            if let nested = records[record as! String] as? [String: Any] {

                if(nested["type"] as! String == "dare" )
                {
                    dare = dare + Float((nested["value"] as? String)!)!
                }

                if(nested["type"] as! String == "avere" )
                {
                    avere = avere + Float((nested["value"] as? String)!)!
                }
            }
        }
        array = [String(dare),String(avere)]
    })
    return array
}

0 个答案:

没有答案