I want my method to wait until Firebase request finished
uploadSingUpInfo
returns before the Firebase request finishes, and this is a problem for me - some method returns nil.
static func uploadSingUpInfo(fullName:String,email:String,password:String)->String{
rootRef = FIRDatabase.database().reference()
var returnVlue="not valid"
FIRAuth.auth()?.createUserWithEmail(email, password: password) { (user, error) in
if (error != nil){
returnVlue=(error?.userInfo["error_name"]) as! String
}
else{
let newUser = [
"username": fullName
]
rootRef.childByAppendingPath("User")
.childByAppendingPath((user?.uid)!).setValue(newUser)
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isLogin")
NSUserDefaults.standardUserDefaults().setObject(email, forKey: "email")
NSUserDefaults.standardUserDefaults().setObject(user?.uid, forKey: "user_ID")
print(NSUserDefaults.standardUserDefaults().objectForKey("user_ID"))
returnVlue="valid"
}
}
return returnVlue
}