ReactとFirebaseを使用しています。
FirebaseのcurrentUser
プロパティとonAuthStateChanged
メソッドの使い分けに疑問点があったのでご教示いただきたいです。
例えばログイン状態を判定する際、下記のそれぞれのコードでログイン状態を判定することができました。
ログイン方法はメールとパスワードによるログインではなく、SNSアカウントによるログインのみです。
firebase.auth().currentUserでログイン状態を判定する場合
js
1const Header = () => { 2 const currentUser = firebase.auth().currentUser; 3 4 return ( 5 <> 6 {currentUser ? <UserIcon /> : <LoginButton />} 7 </> 8 ) 9}
onAuthStateChangedでログイン状態を判定する場合
js
1const Header = () => { 2 const [currentUser, setCurrentUser] = useState(null); 3 useEffect(() => { 4 firebase.auth().onAuthStateChanged((user) => setCurrentUser(user)); 5 }, []); 6 7 return ( 8 <> 9 {currentUser ? <UserIcon /> : <LoginButton />} 10 </> 11 ) 12}
上記2種を比較すると、コード量が少ないcurrentUser
を参照した方がよいのかなと思ったのですが、Firebaseのドキュメントはユーザーデータを取得する際はonAuthStateChanged
を使用するよう説明しています。
認証状態オブザーバーを設定し、ユーザーデータを取得する
ログイン状態の判定およびユーザーデータの取得など用途によってこっちを使った方がよい、とか、そのほかそれぞれのメリットデメリットがあればご教示いただきたいです。
あなたの回答
tips
プレビュー