如何使用Firebase在React应用中使用“用户名”而不是“电子邮件地址”登录?

时间:2019-02-19 14:22:37

标签: reactjs firebase-authentication

我正在开发一个React应用,并实现了使用电子邮件地址或密码登录的Firebase身份验证方法。它可以正常工作,但是现在我不需要使用电子邮件地址登录,我需要使用用户名和密码登录?

export const signinUserInFirebase = (user, history) => (dispatch) => {
   dispatch({ type: LOGIN_USER });
   console.log('data', user.email, user.password)
   firebase.auth()
      .signInWithEmailAndPassword(user.email, user.password)

  .then((user) => {
     localStorage.setItem("user_id", "user-id");
     dispatch({ type: LOGIN_USER_SUCCESS, payload: localStorage.getItem('user_id') });
     history.push('/');
     NotificationManager.success('User Login Successfully!');
  })
  .catch((error) => {
     dispatch({ type: LOGIN_USER_FAILURE });
     NotificationManager.error(error.message);
  });
}

1 个答案:

答案 0 :(得分:0)

我认为您不能使用直接的Firebase身份验证来做到这一点。 但是,您可以在Firebase中创建一个单独的ref,用于存储基本用户数据(例如displayName,userId,emailAddress)。然后在您的函数中,从您的用户ref中获取用户emailAddress并将其用于signInWithEmailAndPassword(email,password)