I am trying to retrieve a string value from Firebase in order to get each username with an unique UID that is passed to the function, which returns the username of the user. However - since the firebase ObserveEvent
is in closures
, I can't return any value back because the actions happens asynchronous(?). I was wondering if it was a way of accomplishing this?
The function looks like this:
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
}
Obviously this doesn't work, but I want to be able to get the data by doing a GetUsername("whatevertheidmightbe"). Ideas?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…