我有一个UITableViewController
,我希望用户能够用一个新密码更改其当前密码。
视图非常简单-2 UITextFields
,我希望他们输入他们的当前密码,并输入另一个他们想要的新密码。
问题是我无法在Firebase的文档中找到执行此操作的方法。有谁知道如何做到这一点?
PS:忽略提示“更新您的电子邮件”,此问题将得到解决。
答案 0 :(得分:3)
1。更改密码
为了更改Firebase用户的密码,您不需要旧密码。您可以通过重新验证用户身份,然后更新密码来做到这一点。
i。重新认证用户:
let user = Auth.auth().currentUser
var credential: AuthCredential
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(with: credential) { error in
if let error = error {
// An error happened.
} else {
// User re-authenticated.
}
}
https://firebase.google.com/docs/auth/ios/manage-users#re-authenticate_a_user
ii。更改密码
重新验证用户身份后,请使用以下方法更改密码:
Auth.auth().currentUser?.updatePassword(to: password) { (error) in
// ...
}
2。忘记密码
要处理这种情况,您可以将密码重置链接发送到用户的电子邮件。使用以下方法:
Auth.auth().sendPasswordReset(withEmail: email) { error in
// ...
}