Проблема с функцией с Firebase Observe - PullRequest
0 голосов
/ 25 июня 2019

Я начинаю быстро развиваться несколько недель назад, и теперь я не понимаю, как продвигается мое приложение. Я создаю класс, который содержит много открытых функций, которые я должен использовать в 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
}
...