Closed7

Next.jsでログイン機能を備えたブログを作る

ariryoariryo

備忘録的に...

  • Next.js
  • MicroCMS
  • Firebase
  • Netrify
    で簡単にブログを作成する
ariryoariryo

とりあえず今までやったこと

  • nextjsのプロジェクト作成
  • ワイヤーフレームの作成
  • firebaseとの連携
  • ログイン機能の追加
  • firebaseのメアド認証機能
  • 登録,メアド認証,追加のユーザ情報の登録のフローを完成
  • MicroCMSとの連携

今からやること

  • 個別のブログページのデザイン
  • ブログページのデータ構造決定
  • Netlifyにデプロイ
  • MailGunで会員向けメールを送られるようにする
ariryoariryo

参考になったデプロイサービス比較記事
1
2

ariryoariryo

以下のコードで無限ループが起こった.useRefでrouterをメモ化して対応した


  useEffect(() => {
    // ログイン状態を監視し、変化があったら発動
    const unsubscribe = onIdTokenChanged(auth, async (firebaseUser) => {
      if (firebaseUser) {
        // ログインしたときUserをセット
        setUserState({
          user: {
            id: firebaseUser.uid,
            name: firebaseUser.displayName!,
            email: firebaseUser.email!,
            emailVarified: firebaseUser.emailVerified!,
          },
          loginState: "logined",
        });
        if (!firebaseUser.emailVerified) {
          sendEmailVerification(firebaseUser).then(() => {
            router.push("/emailvarification");
          });
        }
        const getData = await getDoc(doc(db, "mailmaga", firebaseUser.uid));
        if (!getData.exists()) {
          router.push("/set-user-info");
        }
      } else {
        // ログインしていない場合、ユーザー情報を空にする
        setUserState({
          user: nullUser,
          loginState: "logouted",
        });
        if (routerRef.current.pathname != "/register") {
          router.push("/login");
        }
      }
      // このコンポーネントが不要になったら監視を終了する
      return unsubscribe;
    });
  }, [router]);

そもそもrouterを使う画面でuseEffectを使うべきではない

ariryoariryo

今からやることをまとめる

  • メール配信機能
    • 受け取るメールを選ぶ機能
    • メールを配信する機能
  • エラーページを設定
  • コンテンツ投稿を試す
  • アバウトタブを書く
    • お問合せ先を書く
ariryoariryo

nodeのversionを変えたら

$ yarn add @netlify/plugin-email
yarn add v1.22.19
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@netlify%2fplugin-email: connect ECONNREFUSED 2606:4700::6810:1d22:443".
info If you think this is a bug, please open a bug report with the information provided in "/***/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

というエラーが出た.原因はこれだったぽい
https://qiita.com/raiga0310/items/ba198156cfb5a5f8462b

このスクラップは2024/03/30にクローズされました