๋ฌธ์
๋ก๊ทธ์ธ / ๋ก๊ทธ์์์ firebase ์ธ์ฆ์ ํตํด ํ๊ณ , user ์ ๋ณด์ ๋ฐ๋ผ ๋ด๊ฐ ์ด ๊ธ๋ง ๋ณด์ฌ์ผํ๋๋ฐ
๋ก๊ทธ์ธ์ ํ๋ฉด ์ด์ ๋ก๊ทธ์ธ์ ํ๋ user์ ๊ฒ์๊ธ์ด ๋ณด์ด๊ณ ์๋ก๊ณ ์นจ์ ํด์ผ ๊ทธ๋๋ถํฐ ์ง๊ธ user๊ฐ ์ด ๊ฒ์๋ฌผ์ด ๋ณด์
ํด๊ฒฐ
๊ทธ๋ฅ ..
user๋ฅผ state๋ก ๊ด๋ฆฌ๋ฅผ ์ํ๊ฑฐ์์ ๐ฎ๐จ
๋ user๊ฐ ๋ณํ๋ ๊ฒ์ ๋ฐ๋ผ ๊ฒ์๋ฌผ์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ useEffect dep์ user๋ฅผ ์ถ๊ฐํด์คฌ์ด์ผํ๋ค ๐จ
// const user = JSON.parse(localStorage.getItem("user")); ์ด๋ ๊ฒ ๋์ด์์์
const [user, setUser] = useState(JSON.parse(localStorage.getItem("user")));
const uid = user && user.uid;
์ด๋ ๊ฒ ์์ ํ๊ณ login ์ปดํฌ๋ํธ์ setUser๋ฅผ props๋ก ๋๊ฒจ์ ๋ก๊ทธ์ธํ์๋ user์ ์ง์ ํด์ฃผ์๋ค.
signInWithEmailAndPassword(auth, id, password)
.then((userCredential) => {
const user = userCredential.user;
localStorage.setItem(
"user",
JSON.stringify({
uid: user.uid,
email: user.email,
})
);
setUser(JSON.parse(localStorage.getItem("user")));
alert(`${user.email}๋ todoto๋ฅผ ์ฆ๊ฒ๊ฒ ์ฌ์ฉํด์ฃผ์ธ์ !`);
navigate("/todos");
})
๊ทธ๋ฆฌ๊ณ ๊ธ์ ์ฒ์์ ๋ถ๋ฌ์ฌ ๋ uid(user)๊ฐ ๋ณํ ๋๋ง๋ค ๋ด๊ฐ ์ด ๊ธ๋ง ๋ณผ ์ ์๊ฒ useEffect์ deps์ uid๋ฅผ ์ถ๊ฐํด์ฃผ์๋ค.
๋ฐ์ํ