几周前,我开始迅速发展,现在我不了解我的应用程序的进展情况。 我创建了一个类,其中包含许多应该在ViewContoller中使用的公共函数。 其中一些功能包含要从Firebase Realtime DB读取的代码,但我遇到了问题... 问题在于,在Firebase Observe之前,函数“ start”中的返回值比我的数组为空。
我读到我可以用Closure解决它。 我尝试过,但不知道如何解决。
我可以帮忙吗?
非常感谢
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
}