前提
Gatsby.jsとFirebaseを使用しています。
ログイン機能を実装しようと思い、下記のYouTubeの動画を見ました。
疑問
動画ではユーザー情報をグローバルステートに格納しています。
ユーザー情報をグローバルステートに格納するメリットは何がありますか?
または、グローバルステートに格納しないデメリットはありますか?
グローバルステートにユーザー情報を入れる場合、ユーザーの名前やプロフィール画像を表示したいコンポーネントで、グローバルステートuser
を取得して、user.displayName
とかを使うかと思うのですが、グローバルステートを参照せずに下記のようにonAuthStateChanged
メソッドでもユーザー情報を取得できました。
javascript
1const [user, setUser] = useState(); 2useEffect(() => { 3 firebase.auth().onAuthStateChanged((user) => setUser(user)); 4}, [])
グローバルステートにユーザー情報を格納するメリットについて、現状私が考えられるメリットは、ユーザー情報が欲しいコンポーネントで毎回上記を書く手間を省けることぐらいしか思いつきません。
とはいえ、ReactとFirebase authの組み合わせでのHow to記事を掘ってみると、グローバルステートにユーザー情報を格納している記事をいくつか見つけました。
- 【React】 Firebaseを使用して認証機能の実装 - Qiita
- ReactとFirebaseを使ってログインフォームを実装する② - Harkerblog
- ReactHooks + Firebase(Authentication, Firestore)でTodoアプリ作る - Qiita
なので、ユーザー情報をグローバルステートに入れないと困るケースや、onAuthStateChanged
だけだと困るケースなど、なにかしら教えていただきたいです。
別にonAuthStateChanged
だけでがんばりたい、という感じでもないです。
onAuthStateChanged
だけでやりくりするメリットも思いついていないので。