#ios #swift #firebase #firebase-authentication
#iOS #swift #firebase #firebase-аутентификация
Вопрос:
Я пытаюсь зарегистрировать пользователя и подтвердить его электронную почту. Я сделал это и подтвердил это по электронной почте, но на Auth.auth().CurrentUser.isemailверен
if (Auth.auth().currentUser?.isEmailVerified)! {
// present another vc
} else {
print("not verified yet") //Always prints that
}
вот моя функция sendVerificationEmail:
if let user = Auth.auth().currentUser {
user.sendEmailVerification(completion: { (error) in
if let error = error {
debugPrint(error)
return
}
print("Sent VerificationMail")
})
} else {
print("no user logged in")
}
здесь я регистрирую пользователя:
func registrateUser(email: String, password: String, completion: @escaping (Bool) -> Void) {
Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
if let error = error {
debugPrint(error)
completion(false)
return
}
result?.user.sendEmailVerification(completion: { (error) in
if let error = error {
debugPrint(error)
completion(false)
return
}
completion(true)
})
}
}
Ответ №1:
Вам необходимо перезагрузить профиль пользователя, прежде чем проверять, подтверждена ли электронная почта.
Используйте следующий код:
Auth.auth().currentUser?.reload(completion: { (error) in
guard error == nil else {
// handle error
print(error!.localizedDescription)
return
}
// your code below
if (Auth.auth().currentUser?.isEmailVerified)! {
// present another vc
} else {
print("not verified yet") //Always prints that
}
})