💡

【 Next.js × FirebaseAuth 】初期化処理で currentUser を確定させるまで待つ

2023/10/21に公開

現状は動いたからとりあえずと思って書いてます。

Flutter だと Firebase の初期化処理を main 関数でやるだけで
認証済みかどうかを確定するけど
Next.js はそういう訳にも行かないらしい・・・

ということで、まずは認証状態をチェックするためにこれを打て!

  useEffect(() => {
    const _initialize = async () => {
      console.log("初期化スタート");
      await auth.authStateReady();
      console.log(auth.currentUser?.uid);
    };
    _initialize();
  });

どうやらコイツが確定してくれるらしい

await auth.authStateReady();

公式
https://firebase.google.com/docs/reference/js/auth.auth?hl=ja#authauthstateready

初期認証状態が解決されるとすぐに解決される Promise を返します。 Promise が解決されると、現在のユーザーは有効なユーザーであるか、ユーザーがサインアウトした場合はnullになる可能性があります。

とのことです↑

つまりもう、onAuthStateChanged こいつは特に不要かもですね〜

やっと解決したなり。

Discussion