Issue
Vue์ ๋ผ์ฐํฐ ๊ฐ๋๋ฅผ ์ด์ฉํด ๋ก๊ทธ์ธ ์ ๋ฌด์ ๋ฐ๋ผ ์ผ๋ถ ํ์ด์ง๋ฅผ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ์๋์ ๊ฐ์ด ์ค์ ํ์๋ค. ํ์ง๋ง currentUser์ ๊ฐ์ด null๋ก ๋ฐ์์ง์ ๋ฐ๋ผ else๋ก ๋น ์ง๋ก ๊ฒฐ๊ตญ ๋ผ์ฐํฐ ๊ฐ๋๊ฐ ์ ๊ธฐ๋ฅ์ ๋ชปํ๋ ์ํฉ์ ๋์๋ค.
Why it happened?
firebase ๋งค๋ด์ผ์ ๋ณด๋ฉด ์๋์ชฝ์
์ฐธ๊ณ : auth ๊ฐ์ฒด์ ์ด๊ธฐํ๊ฐ ์๋ฃ๋์ง ์์ currentUser๊ฐ null์ผ ์๋ ์์ต๋๋ค. ๊ด์ฐฐ์๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ถ์ ํ๋ฉด ์ด๋ฐ ์ํฉ์ ์ฒ๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
๋ผ๋ ์ ๋ณด๊ฐ ์๋ค.
๋งค๋ด์ผ ์ ๋ณด๋ฅผ ๋ฏธ๋ฃจ์ด๋ณด์.. ๋ค๋น๊ฒ์ด์ ๊ฐ๋ beforeEach๊ฐ firebase์ ์ด๊ธฐํ ์ ์ ์คํ๋์๊ธฐ ๋๋ฌธ์ currentUser๊ฐ null์ ๋ฐ์์จ๊ฒ ๊ฐ๋ค.
๊ด์ฐฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ฌ์ฉ์๋ฅผ ๊ฐ์ ธ์ฌ ๋ Auth ๊ฐ์ฒด๊ฐ ์ค๊ฐ ๋จ๊ณ(์ด๊ธฐํ ๋ฑ)์ ์์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
signInWithRedirect๋ฅผ ์ฌ์ฉํ๋ฉด onAuthStateChanged ๊ด์ฐฐ์๋ getRedirectResult๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ์ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค.
๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ณด์ธ๋ค.
๊ด์ฐฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ฌ์ฉ์๋ฅผ ๊ฐ์ ธ์ฌ ๋ Auth ๊ฐ์ฒด๊ฐ ์ค๊ฐ ๋จ๊ณ(์ด๊ธฐํ ๋ฑ)์ ์์ง ์๋๋ก ํ ์ ์๋ค๊ณ ํ๋๋ฐ ๊ทธ ๊ด์ฐฐ์๋ฅผ onAuthStateChanged๋ผ๊ณ ํ๋ค.
๋ฐ๋ผ์ onAuthStateChanged ๊ด์ฐฐ์์ ์ฝ๋ฐฑ์ ๋ฃ๊ณ firebase๊ฐ ์ด๊ธฐํ ๋์์๋ vue์ฑ์ ์ด๊ธฐํ ํด๋ณด๋๋ก ํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด firebase auth ๊ฐ์ฒด๊ฐ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์๋๋ง vue์ฑ์ ์ด๊ธฐํ ํ๋ค.