我有一个场景,要求在用户执行不可逆转的任务之前,根据用户的firebase密码检查输入的密码。这与创建帐户或登录不同。如何检查firebase密码?它看起来不像password
中的firebase.auth().currentUser
属性。
更新 用户必须验证其密码,删除按钮将运行一个功能来检查它。如果它与firebase密码匹配,则Delete按钮将成功触发弹出的漂亮模式。
答案 0 :(得分:0)
如果您需要在某个时候对其进行检查,我建议您将用户密码存储在某处。
我不会将其存储在您的数据库中(这是不安全的),而是使用UserDefaults将其个人存储在用户的设备上,这样您就可以在需要执行合理任务时轻松访问它。
更新
另一种可能性是使用reauthenticateWithCredential方法。如果该方法返回成功,则执行您的敏感任务。如果失败,请让您的用户输入正确的密码。
根据您的要求,您可以使用他的电子邮件重新验证用户身份。密码:
// First you get your current user using Auth :
let currentUser = Auth.auth()?.currentUser
// Then you build up your credential using the current user's current email and password :
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
// use the reauthenticate method using the credential :
currentUser?.reauthenticate(with: credential, completion: { (error) in
guard error == nil else {
return
}
// If there is no error, you're good to go
// ...Do something interesting here
})
您可以在Firebase文档中找到更多解释:https://firebase.google.com/docs/auth/ios/manage-users