使用react native和Firebase更改密码

时间:2018-01-21 19:05:29

标签: javascript firebase react-native firebase-authentication

在我们的项目中,有一个选项,用户可以更改其密码。要做到这一点

  1. 更改密码前,用户必须输入当前密码,然后检查输入的密码是否与现在保存的密码匹配。
  2. 如果没问题,则用户必须使用新密码更新旧密码(保存的密码)。
  3. 我正在使用react native和Firebase来开发项目。如果有人知道解决方案,请告诉我......

    enter image description here

1 个答案:

答案 0 :(得分:0)

除非您最近通过身份验证,否则Firebase Auth不会让您更改密码。如果您在未经过最近身份验证的情况下尝试updatePassword,则会收到错误auth/requires-recent-login。 以下是如何做到这一点:

// Ask signed in user for current password.
const currentPass = window.prompt('Please enter current password');
const emailCred  = firebase.auth.EmailAuthProvider.credential(
    firebase.auth().currentUser, currentPass);
firebase.auth().currentUser.reauthenticateWithCredential(emailCred)
    .then(() => {
      // User successfully reauthenticated.
      const newPass = window.prompt('Please enter new password');
      return firebase.auth().currentUser.updatePassword(newPass);
    })
    .catch(error = > {
      // Handle error.
    });

请注意上面的示例,使用window.prompt进行说明。您可以在此处使用自己的等效反应原生UI。