๐Ÿ›  Firebase initialize ์ด์Šˆ ํ•ด๊ฒฐ

๊ฐ•๋ƒ‰์ดยท2021๋…„ 1์›” 14์ผ
1

vuejs

๋ชฉ๋ก ๋ณด๊ธฐ
4/4
post-thumbnail
  1. Issue
    Vue์˜ ๋ผ์šฐํ„ฐ ๊ฐ€๋“œ๋ฅผ ์ด์šฉํ•ด ๋กœ๊ทธ์ธ ์œ ๋ฌด์— ๋”ฐ๋ผ ์ผ๋ถ€ ํŽ˜์ด์ง€๋ฅผ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ currentUser์˜ ๊ฐ’์ด null๋กœ ๋ฐ›์•„์ง์— ๋”ฐ๋ผ else๋กœ ๋น ์ง€๋กœ ๊ฒฐ๊ตญ ๋ผ์šฐํ„ฐ ๊ฐ€๋“œ๊ฐ€ ์ œ ๊ธฐ๋Šฅ์„ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์— ๋†“์˜€๋‹ค.

  2. Why it happened?

    firebase ๋งค๋‰ด์–ผ์„ ๋ณด๋ฉด ์•„๋ž˜์ชฝ์—

    ์ฐธ๊ณ : auth ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•„ currentUser๊ฐ€ null์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋ฉด ์ด๋Ÿฐ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ผ๋Š” ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.

๋งค๋‰ด์–ผ ์ •๋ณด๋ฅผ ๋ฏธ๋ฃจ์–ด๋ณด์•„.. ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ฐ€๋“œ beforeEach๊ฐ€ firebase์˜ ์ดˆ๊ธฐํ™” ์ „์— ์‹คํ–‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— currentUser๊ฐ€ null์„ ๋ฐ›์•„์˜จ๊ฒƒ ๊ฐ™๋‹ค.

  1. solve
    ์œ„ ์ฒจ๋ถ€์ด๋ฏธ์ง€ ์ƒ๋‹จ์„ ๋ณด๋ฉด

    ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ Auth ๊ฐ์ฒด๊ฐ€ ์ค‘๊ฐ„ ๋‹จ๊ณ„(์ดˆ๊ธฐํ™” ๋“ฑ)์— ์žˆ์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    signInWithRedirect๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด onAuthStateChanged ๊ด€์ฐฐ์ž๋Š” getRedirectResult๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋ณด์ธ๋‹ค.
๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ Auth ๊ฐ์ฒด๊ฐ€ ์ค‘๊ฐ„ ๋‹จ๊ณ„(์ดˆ๊ธฐํ™” ๋“ฑ)์— ์žˆ์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ ๊ด€์ฐฐ์ž๋ฅผ onAuthStateChanged๋ผ๊ณ  ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ onAuthStateChanged ๊ด€์ฐฐ์ž์— ์ฝœ๋ฐฑ์„ ๋„ฃ๊ณ  firebase๊ฐ€ ์ดˆ๊ธฐํ™” ๋˜์—ˆ์„๋•Œ vue์•ฑ์„ ์ดˆ๊ธฐํ™” ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด firebase auth ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์„๋•Œ๋งŒ vue์•ฑ์„ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

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