๐Ÿœ ์ด๋ฉ”์ผ ์‚ฌ์šฉ ์œ ์ € ์˜ค๋ฅ˜ ๋ฐœ์ƒ: ์œ ์ € ์ด๋ฆ„ ์„ค์ •ํ•˜๊ธฐ

summereuna๐Ÿฅยท2022๋…„ 5์›” 25์ผ

๐ŸŒŸ Twinkle (React, Firebase)

๋ชฉ๋ก ๋ณด๊ธฐ
25/42

๋ฌธ์ œ ๋ฐœ์ƒ!


๋‹ค๋ฅธ ์†Œ์…œ๋กœ๊ทธ์ธ ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ ํ•˜๋ฉด ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ ์ด๋ฉ”์ผ/ํŒจ์Šค์›Œ๋“œ๋กœ ๊ฐ€์ž…ํ•œ ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๊ธฐ์กด ์†Œ์…œ๋กœ๊ทธ์ธ์€ ์œ ์ €์˜ ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— displayName์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์ด๋ฉ”์ผ/ํŒจ์Šค์›Œ๋“œ๋กœ ๊ฐ€์ž…ํ•œ ์œ ์ €์˜ ๊ฒฝ์šฐ ํ”„๋กœํ•„ ์ •๋ณด์—๋Š” displayName์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค.

๋”ฐ๋ผ์„œ ํ—ค๋” ๋„ค๋น„๊ฒŒ์ด์…˜์— ์ž‘์„ฑํ•ด ๋‘”, {userObj.displayName}์˜ ํ”„๋กœํ•„ ๋ถ€๋ถ„์— ๊ตฌ๋ฉ์ด ๋‚œ๋‹ค. ํ˜„์žฌ ์ด๋ฉ”์ผ/ํŒจ์Šค์›Œ๋“œ๋กœ ๊ฐ€์ž…ํ•œ ์œ ์ €์˜ userObj.displayName ๊ฐ’์ด null์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•


์กฐ์น˜๋ฅผ ์ทจํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์—๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • ๊ฐ€์ž…ํ•  ๋•Œ displayName ๋ฐ›๋Š” form ๋งŒ๋“ค์–ด displayName ๋ฐ›๊ธฐ
  • ๊ฐ€์ž… ํ›„ ์ฒซ ๋กœ๊ทธ์ธ ์‹œ user ์ •๋ณด์— updateProfile()๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•˜์—ฌ displayName ์ž„์˜๋กœ ์ง€์ •ํ•˜๊ธฐ
  • ๋“ฑ๋“ฑ..

๊ฐ€์žฅ ํŽธํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŒ๋‹จ๋˜๋Š” 2๋ฒˆ์œผ๋กœ ์ผ๋‹จ ์ง„ํ–‰ํ•ด๋ณด์ž.

๊ฐ€์ž… ํ›„ ์ฒซ ๋กœ๊ทธ์ธ ์‹œ user ์ •๋ณด์— updateProfile()๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•˜์—ฌ displayName ์ž„์˜๋กœ ์ง€์ •ํ•˜๊ธฐ

import { getAuth, onAuthStateChanged, updateProfile } from "firebase/auth";

//...

const auth = getAuth();

onAuthStateChanged(auth, async (user) => {
  //๐Ÿ”ฅ user์˜ displayName์ด null์ธ ๊ฒฝ์šฐ updateProfile()์„ ์‚ฌ์šฉํ•˜์—ฌ displayName์„ "์œ ์ €"๋กœ ์ž„์˜ ๋ณ€๊ฒฝ ํ•ด๋ฒ„๋ฆฌ์ž. ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ์œ ์ € ์ •๋ณด๋ฅผ userObj์— ์—…๋ฐ์ดํŠธ ํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ•œ๋‹ค.
  if (user) {
    if (user.displayName === null) {
      await updateProfile(user, { displayName: "์œ ์ €" });
    }
    setUserObj(user);
  } else {
    setUserObj(null);
  }
  setInit(true);
});

๋ฌธ์ œ ํ•ด๊ฒฐ!
๋กœ๊ทธ์ธ ์‹œ ์ž๋™์œผ๋กœ "์œ ์ €"๋ผ๊ณ  ๋œฌ๋‹ค. ๋งˆ์Œ์— ์•ˆ ๋“ค๋ฉด ํ”„๋กœํ•„ ์ˆ˜์ • ๊ณ ๊ณ ~ ๐Ÿ˜‡
์‚ฌ์‹ค ์ง„์งœ ํŠธ์œ„ํ„ฐ์ฒ˜๋Ÿผ ๋ชจ๋‹ฌ์ฐฝ ๋„์›Œ์„œ ๊ฐ€์ž…ํ•  ๋•Œ ๋ถ€ํ„ฐ ์ด๋ฆ„์„ ๋ฐ›๊ณ  ์‹ถ๊ธด ํ•œ๋ฐ ์•„์ง ์‹ค๋ ฅ์ด ์•ˆ๋˜๋ฏ€๋กœ ์ผ๋‹จ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ , ๋‚˜์ค‘์— ๋ฐฉ๋ฒ•์„ ๋ฐ”๊ฟ”๋ณด์ž! ์ฐจ๊ทผ์ฐจ๊ทผ! ์•„์ž์•„์ž! ํ™งํŒ…!

profile
Always have hope๐Ÿ€ & constant passion๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€