Recuperar valor String da função com fechamento no Swift

Eu estou tentando recuperar um valor de string do Firebase para obter cada nome de usuário com um UID exclusivo que é passado para a função, que retorna o nome de usuário do usuário. No entanto - desde a base do firebaseObserveEvent é emclosures, Não posso retornar nenhum valor porque as ações acontecemassíncrono(?) Eu queria saber se era uma maneira de conseguir isso?

A função fica assim:

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
}

Obviamente, isso não funciona, mas quero poder obter os dados executando um GetUsername ("whatevertheidmightbe"). Idéias?

questionAnswers(1)

yourAnswerToTheQuestion