我是 React 和 Firebase 的新手,我一整天都在尝试解决这个小的用户注册问题。希望有人能帮助我,我将不胜感激🙏🏻
我正在使用 React 和 Firebase 制作一个类似 twitter 的博客网站,目前正在使用 Firebase 的 auth.createUserWithEmailAndPassword() 方法使用用户名注册新用户。这就是我正在做的:
import { auth } from '../firebase';
const onSubmit = async (data) => {
auth
.createUserWithEmailAndPassword(data.email, data.password)
.then((result) => {
result.user.updateProfile({
displayName: data.username,
});
setUserError(!userError);
window.localStorage.setItem('emailForSignIn', data.email);
setRedirect(true);
})
.catch((error) => {
setUserError(!userError);
setAlertMsg(error.message);
});
};
用户提交表单后,他们将被重定向到主页,然后我将页面设置为他们当前的用户名。我通过设置用户名的状态来设置用户名,然后将其作为道具传递到我的所有页面。
const Main = ({SignOut}) => {
const [userName, setUserName] = useState('')
useEffect(() => {
const getUserName = () => {
auth.onAuthStateChanged((user) => {
setUserName(user.displayName)
console.log('Current userName is: ', user.displayName);
});
}
getUserName()
}, [])
return (
<Router>
<Switch>
<Route exact path="/">
<Navbar userName={userName} SignOut={SignOut} />
<Tweets userName={userName} />
</Route>
<Route path="/profile">
<Navbar userName={userName} SignOut={SignOut} />
<Profile setUserName={setUserName} userName={userName} />
</Route>
</Switch>
</Router>
)
}
几乎一切都很完美,但是他们的用户名只有在注销并重新登录时才会显示。任何帮助都会很棒!
心有法竹
相关分类