🏛️
【firebase】onAuthStateChangedとcurrentUserの違い
firebaseでログイン状態を監視して、それに応じたcomponentを描写したり、redirect処理をしたりする際によく使うのがonAuthStateChanged
とcurrentUser
だと思います。この2つの違いで実装時に悩みました。
違い
Answer:上位のAuthオブジェクトがの初期化状態を待ってから情報を取得するかそうでないか
onAuthStateChanged
ではAuthオブジェクトの状態を待ってから確認することができます。従って、Authオブジェクトの状態次第でcurrentUser
で取得した値は、ログインしていてもnullになる可能性があります。
公式のドキュメントにも下記のような記載があります。
注: currentUser が null になる原因としては、Auth オブジェクトの初期化が完了していないことも考えられます。オブザーバーを使用してユーザーのログイン ステータスを追跡している場合は、この状況に対処する必要はありません。
間違ってnullが入らないためにも、onAuthStateChanged
でログイン状態を管理する方が良いです。
参考リンク
Discussion