Я начинаю быстро развиваться несколько недель назад, и теперь я не понимаю, как продвигается мое приложение.
Я создаю класс, который содержит много открытых функций, которые я должен использовать в ViewContoller.
Некоторые из этих функций содержат код для чтения из БД Firebase Realtime, но у меня проблема ...
Проблема в том, что возвращение в функцию «запуск» до Firebase Observe, чем у меня массив с пустым значением.
Я прочитал, что могу решить это с помощью Closure.
Я пытаюсь, но я не понимаю, как решить.
Можно мне помочь?
Большое спасибо
введите описание изображения здесь
public func getYearFromDB (год: строка, пользователь: строка, дБ: строка) -> [строка] {
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
}