๐Ÿถ๐Ÿพ/์‹ค์ˆ˜ ๋ชจ์Œ์ง‘

[react] ์ƒˆ๋กœ๊ณ ์นจํ•ด์•ผ ๊ฒŒ์‹œ๋ฌผ ๋œจ๋Š” ๋ฌธ์ œ

onieyh 2024. 2. 1. 20:45

๋ฌธ์ œ

๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ์„ 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๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•