Ich versuche, die UID von einem Abschlusshandler zu bekommen, so dass ich einen Pfad erstellen und einige Elemente aus meiner Firebase DB abrufen kann, aber wertet bis zum Zeitpunkt Null dbRef
wird aufgerufen .Abschlusshandler wird nicht aufgerufen, wie angenommen Swift
Mein Problem ist, dass mein Completion-Handler aufgerufen wird, nachdem dbRef
bereits aufgerufen wurde und nicht umgekehrt. Ich dachte, dass mein Code in Zeile ausgeführt werden, 1. FIRAuth.auth()? ...., 2. dBref = FIRDatabase ....
override func viewDidLoad() {
super.viewDidLoad()
FIRAuth.auth()?.addAuthStateDidChangeListener({ (auth:FIRAuth, user:FIRUser?) in
if let userSignedIn = user {
self.myuserLogged = userSignedIn.uid
print("Welcome buddy \(self.myuserLogged)")
}
})
print("brother \(self.myuserLogged)")
dbRef = FIRDatabase.database().reference().child("Users/\(myuserLogged)")
startObservingDB()
}
Also im Grunde funktioniert es auf diese Weise: während addAuthStateDidChangeListener die Informationen aus der Datenbank ergreift und auth & user-Variable auffüllt, geht die Codeausführung zu dbRef weiter und sobald addAuthStateDidChangeListener seine Aufgabe beendet hat, wird der Code nach 'in' weiter ausgeführt . Ich denke ich habe es. – bibscy
@bogdanbarbulescu Klingt richtig. – dersvenhesse