我刚开始学习IOS开发,来自后端世界。我希望将userID传递给此函数并返回名称,所有数据都来自Firebase。我当前尝试从闭包中打破名称值不起作用,返回空字符串。如何构建此代码以获取该名称' name'变量返回。
src
答案 0 :(得分:2)
这不起作用。 signInAnonymouslyWithCompletion()
正在后台工作。
异步创建并成为匿名用户。
这意味着当执行完成块时getNameOfUser()
及其局部变量已经消失。
func getNameOfUser(uid: String) -> String
{
var name: String = ""
FIRAuth.auth()?.signInAnonymouslyWithCompletion()
{ (user, error) in
// Executed somewhere in the future
}
// Executed immeditaly.
return name
}
您应该将完成块作为参数传递给函数,并在完成块内执行,而不是返回结果。