onAuthStateChangedとcurrentUserの違い、使い分けについて (Firebase)
はじめに
今回もFirebaseの話題です。今回はAuthenticationの、onAuthStateChanged
メソッドと、currentUser
プロパティの違いと使い分け、あと自分がこれらを使ったときに詰まったところを書き記そうと思います。
1. それぞれの違い
onAuthStateChanged
と、currentUser
は、どちらもログインしているユーザの情報を入手するメソッド、プロパティです。当初自分がアプリ開発においてonAuthStateChanged
の存在を知らず、currentUser
のみを使って開発を行っていました。
するとある時、ログインしているのにも関わらずcurrentUser
がnullで返ってきてしまうことがあり、調べると、onAuthStateChanged
に行きつきました。合わせてcurrentUser
がnullになる原因を調べると、Authオブジェクトの状態によってはnullが帰ってくるということがわかりました。
onAuthStateChanged
は、Authオブジェクトが初期化されるのを待ってからログイン情報を取得するので、nullが返ってこないようになっています。上位互換です。
2. 使い分けについて
これら2つの使い分けは、正直言って使い分けというよりonAuthStateChanged
一択に感じます。今のところログインユーザの情報を取得するのにonAuthStateChanged
しか使ってないですが、今のところ問題ないです。もしかしたら今後currentUser
を使う機会が来るかもしれないですが、今の時点では思いつかないです。。
最後にonAuthStateChanged
を使ったコードを貼っておきます。
useEffect(() => { onAuthStateChanged(auth, (user) => { if (user !== null) { if (user.emailVerified === true) { console.log(user); navigate("/MyPage"); } } }); }, []);
3. 最後に
次回は、react 、コンポーネントごとにファイル分けしよう、です。