Retrieve String value from function mit Closure in Swift

Ich versuche, einen Zeichenfolgenwert von Firebase abzurufen, um jeden Benutzernamen mit einer eindeutigen UID abzurufen, die an die Funktion übergeben wird, die den Benutzernamen des Benutzers zurückgibt. Allerdings - seit der FirebaseObserveEvent ist inclosures, Ich kann keinen Wert zurückgeben, da die Aktionen ausgeführt werdenasynchro (?). Ich habe mich gefragt, ob es ein Weg ist, dies zu erreiche

Die Funktion sieht so aus:

func GetUsername(uid:String) -> String {
    var username = String()
    firebase.child("Users").child(uid).observeSingleEventOfType(.Value) { (snapshot:FIRDataSnapshot) in

        username = snapshot.value!["Username"] as! String

    }

    return username
}

Offensichtlich funktioniert das nicht, aber ich möchte in der Lage sein, die Daten mit einem GetUsername ("whatevertheidmightbe") abzurufen. Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage