Ios 如何在firebase数据库中使用firebase身份验证重置密码邮件恢复密码

Ios 如何在firebase数据库中使用firebase身份验证重置密码邮件恢复密码,ios,swift,firebase,firebase-authentication,Ios,Swift,Firebase,Firebase Authentication,我实际上是在Swift中开发一个iOS应用程序,它使用Firebase作为在线数据库。 所以,其概念是:用户可以注册firebase身份验证电子邮件和密码,然后我将电子邮件和密码写入数据库。 但现在,我想用Firebase Auth send password Reset实现邮件密码重置。 这个函数工作得很好,但我想更新数据库中的密码也。 我不知道该怎么做。 这是我的密码: @IBOutlet weak var txt_mail: UITextField! Auth.auth().sendPa

我实际上是在Swift中开发一个iOS应用程序,它使用Firebase作为在线数据库。 所以,其概念是:用户可以注册firebase身份验证电子邮件和密码,然后我将电子邮件和密码写入数据库。 但现在,我想用Firebase Auth send password Reset实现邮件密码重置。 这个函数工作得很好,但我想更新数据库中的密码也。 我不知道该怎么做。 这是我的密码:

@IBOutlet weak var txt_mail: UITextField!
 Auth.auth().sendPasswordReset(withEmail: txt_mail.text!) { (error) in
            let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
            let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
            alertController.addAction(defaultAction)
            self.present(alertController, animated: true, completion: nil)
        }

此代码向用户发送重置电子邮件,用户将从通过邮件发送给他的链接更改其密码,我如何恢复密码?

首先,为什么要存储用户密码?您是否以纯文本形式存储它们?这当然不安全,我建议您不要这样做

Firebase不存储用户密码。它存储密码的散列。这是存储密码的正确方法,不能转换为纯文本。此外,没有用于获取用户密码的API。这也是出于安全考虑

如果你不想听的话。那么你只有一个潜在的选择。您可以使用
changePasswordForUser()
更新应用程序中的密码。然而,这要求 用户知道其当前密码。重置未知密码的唯一方法是使用
resetPasswordForUser()

但是,由于您在数据库中保存了密码,因此您可以设计一种变通方法,使用该密码对用户进行身份验证,然后更新其密码,或者您可以要求用户在更新密码后下次登录时更新其密码(您可以使用他们更新的密码重新验证他们的身份,以确保其正确性)。同样,我不建议这样做

有关更多信息,请查看以下链接: