Firebase Auth에서 초기화할 current User의 확인 방법을 기다립니다.

개시하다


분명히 로그인했는데 다음 대상null은 곤란한 일이 있나요?
이번에는 이 이유와 대책을 소개하고 싶습니다.

까닭


Firebase Auth의 로그인 정보 초기화onAuthStateChanged가 불이 났을 때 이뤄졌기 때문이다.
onAuthStateChanged 불이 나기 전에 참조currentUser하면 로그인을 해도 null되는 것이다.

대책


모드 1


대책으로 onAuthStateChanged에 등록된 함수에 user 데이터를 직접 참조해 주십시오.
firebase.auth().currentUser; // ログインしてても何故か null
마지막unsubscribe에 등록된 함수도 해제하는 것을 잊지 마세요!

모드 2


비동기적으로 쓰는 방법이 좀 어려운 사람도 이렇게 회피할 수 있다.
var unsubscribe = firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // ログインしていれば中通る
    console.log(user); // ユーザー情報が表示される
  }

  // 登録解除
  unsubscribe();
});
이쪽 모드onAuthStateChanged에서 대상을 되돌려줌으로써 얻은user 대상을 Resolve하여 사용하는 쪽에서 사용할 수 있음Promise.
나는 네가 동기처럼user 데이터를 참조할 수 있다는 것을 알게 될 것이라고 생각한다.

끝말


지금까지 Firebase Auth의 Tips였습니다.
앞서 우리 멤버들은 "분명히 로그인했는데 왜 로그인을 안 했어요?"라는 질문이 내게 알려준 내용을 보면 많은 사람이 여기에 걸려 넘어졌을 거라고 생각해 기사를 썼다.
조금이라도 참고해도 좋다.

Reference


공식 문서도 이 부근에 상세하게 쓰여 있다.
https://firebase.google.com/docs/auth/web/manage-users

좋은 웹페이지 즐겨찾기