Appeler sa propre fonction avec un gestionnaire de complétion
da1lbi3
J'ai une méthode pour créer un compte :
func createAccount (completion: @escaping (_ succes: Bool, _ message : String)->()) {
Auth.auth().createUser(withEmail: createMail(), password: createPassword()) { (result, error) in
if let _eror = error {
//something bad happning
print(_eror.localizedDescription )
if let errorCode = AuthErrorCode(rawValue: _eror._code) {
if(errorCode.rawValue == 17007) {
print("acount exist")
createAccount(completion: (Bool, String) -> ()
} else {
//call itself and try it again
}
}
} else {
//user registered successfully
print("user registered")
return completion(true, "");
}
}
}
J'obtiens une erreur lorsque le logiciel crée un compte avec un email qui existe déjà, ce qui est bien (voir la else
déclaration - //call itself and try it again
).
Ce qui doit arriver, c'est que la fonction doit s'appeler à nouveau pour l'essayer avec un autre e-mail.
J'ai essayé de mettre createAccount(completion: (Bool, String) -> ()
l' else
étui, mais cela n'a pas fonctionné.
Comment puis-je appeler à createAccount()
nouveau la fonction dans le cas else ?
Sh_Khan
Vous devez passer à nouveau le même paramètre
createAccount(completion:completion)