我正在开发一个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);
});
}
答案 0 :(得分:0)
我认为您不能使用直接的Firebase身份验证来做到这一点。 但是,您可以在Firebase中创建一个单独的ref,用于存储基本用户数据(例如displayName,userId,emailAddress)。然后在您的函数中,从您的用户ref中获取用户emailAddress并将其用于signInWithEmailAndPassword(email,password)