Swift 发送电子邮件以验证帐户,然后更新到新电子邮件
我使用Firebase作为身份验证和存储数据的后端服务。 在我们的应用程序中,我们需要让用户能够更改电子邮件。 当用户创建帐户时,我们使用Firebase方法向他发送验证电子邮件Swift 发送电子邮件以验证帐户,然后更新到新电子邮件,swift,firebase,email,firebase-authentication,Swift,Firebase,Email,Firebase Authentication,我使用Firebase作为身份验证和存储数据的后端服务。 在我们的应用程序中,我们需要让用户能够更改电子邮件。 当用户创建帐户时,我们使用Firebase方法向他发送验证电子邮件 Auth.auth().createUser(withEmail: user.email, password: password) { (_, error) in if error != nil { // Error handling Utilities.HUDstopLoa
Auth.auth().createUser(withEmail: user.email, password: password) { (_, error) in
if error != nil {
// Error handling
Utilities.HUDstopLoading()
Utilities.alertWhileCreateingNewAccount(self.viewController, errorMessage: error?.localizedDescription ?? "Something wrong happend")
} else {
// Account created
}
这没什么问题
当用户想要更改电子邮件时,会出现问题
因为在更新电子邮件时,它会在Firebase身份验证中自动更新。
现在,当用户在电子邮件中输入错误时,验证电子邮件将发送到错误的地址,但尽管此电子邮件在Firebase身份验证中更新
我正在使用此功能更新电子邮件:
currentUser.updateEmail(to: newEmail) { (error) in
if let error = error
// Error happend while updating email
print("Error happend while updating email \(error)")
Utilities.alertWhileCreateingNewAccount(self.viewController, errorMessage: error.localizedDescription )}
else {
self.sendEmailVerification()
currentUser.reload(completion: nil)
Utilities.successHUD(in: self.viewController.view)
self.viewController.navigationController?.popViewController(animated: true)
}
}
对于Android,有一个方法叫做
verifyBeforeUpdateEmail(String newEmail)
而且它工作得很好。它将用户验证发送到新电子邮件,并等待用户验证一封电子邮件(如果不是,则前一封电子邮件仍保留)。
在iOS的文档中,我发现了相同的函数,但是。。。它不存在于FirebaseAuth
有没有办法通过更新iOS应用程序的电子邮件来解决此问题?如果Firebase允许更新电子邮件而不验证 Firebase在这里“如果Firebase允许在不验证的情况下更新电子邮件,那将非常奇怪……”这正是它所做的,尽管我同意这对您的使用并不理想。目前,您必须自己实现备用流。“如果Firebase允许在没有验证的情况下更新电子邮件,那将是非常奇怪的……”这正是它所做的,尽管我同意这对您的使用并不理想。目前,您必须自己实现备用流。但这可能是好的。