我有一个看起来很傻的问题,但我在任何地方都找不到答案。
我有一个简单的注册 iOS 程序,它依赖于 Firebase Authentication SDK。
在用户创建后的某个时间点:
FIRAuth.auth()?.createUser(withEmail: userName!, password: password!)
在那之后,我向我的用户发送了一封验证电子邮件:
FIRAuth.auth()?.currentUser?.sendEmailVerification(completion:
{(error) in
if error == nil
{self.showSuccessPopUp()}
else
{self.showErrorPopUp()}
})
一切正常,完全没有问题。
我的问题是:我的用户收到了电子邮件,但出于任何原因没有点击自动生成的确认链接。
稍后,他再次打开应用程序——忘记他已经注册过一次——尝试使用相同的电子邮件地址进行注册。
Firebase 只是说已经使用该电子邮件地址创建了一个用户 - 根据文档,即使用户不是“事件”,也会创建该用户 - 因此我想为我的用户提供“重新发送验证电子邮件”的选项。
我一直在深入研究 Firebase API 文档,但没有解决方案。
有没有人遇到过同样的“问题”?
谢谢你的帮助
最佳答案
虽然晚了,我会在两种情况下回答这个问题:
1:您成功调用了 createUser,但是当用户再次打开应用程序时,firebase.auth() 说他们没有登录
在这种情况下,该帐户存在密码,因此您需要发送“重置密码”电子邮件,而不是身份验证电子邮件
2:您成功调用了 createUser,但是当用户再次打开应用程序时,firebase.auth() 表示他们已登录
在这种情况下,他们已登录,但未经过验证。用
firebase.auth().currentUser.reload() // reloads user fields, like emailVerified:
if (!firebase.auth().currentUser.emailVerified) {
//resend verification email
} else {
//login
}
请原谅我使用 javascript 但应该很容易翻译
关于ios - 重新发送 Firebase 电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385571/