Ich überprüft, ob Benutzer per E-Mail verifiziert ist oder nicht. Unabhängig davon, wie viele E-Mails ich gesendet und bestätigt habe, ist der Bestätigungsstatus immer noch false
. Mache ich etwas falsch, während ich es überprüfe?Firebase E-Mail-Bestätigung überprüft nicht Konto
FIRAuth.auth()?.addStateDidChangeListener({ (auth, user) in
if (auth.currentUser?.isEmailVerified)!{
let mainStoryboard: UIStoryboard = UIStoryboard(name:"Main",bundle:nil)
let NewPostViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "NewPostViewController")
//Send the user to the LoginViewController
self.present(NewPostViewController, animated: true, completion: nil)
}else{
let alertVC = UIAlertController(title: "Error", message: "Sorry. Your email address has not yet been verified. Do you want us to send another verification email to \(self.currentUser.generalDetails.email).", preferredStyle: .alert)
let alertActionOkay = UIAlertAction(title: "Okay", style: .default) {
(_) in
FIRAuth.auth()?.currentUser?.sendEmailVerification(completion: nil)
}
let alertActionCancel = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertVC.addAction(alertActionOkay)
alertVC.addAction(alertActionCancel)
self.present(alertVC, animated: true, completion: nil)
}
})
Laden Sie Ihren aktuellen Benutzer neu, nachdem Sie Ihren Benutzer verifiziert haben? – Dravidian
Wie können Sie den Benutzer neu laden? Beendet die App das nicht? Wenn es meine Reputation neu lädt, dann erkennt es nicht, dass der Benutzer verifiziert ist. –
Die E-Mail-bestätigte Eigenschaft wird nur neu geladen, wenn der Benutzer sich anmeldet. Wenn ich mich richtig erinnere, können Sie [erneut authentifizieren] (https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user#afa881b98220684503c5141afbb60e83d) abrufen der aktualisierte Wert, aber ['reloadWithCompletion'] (https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user#ac9a4e0578dcbe4abee62143fa2b25f66) klingt ebenfalls vielversprechend. –