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

備忘録的に...
- Next.js
- MicroCMS
- Firebase
- Netrify
で簡単にブログを作成する

とりあえず今までやったこと
- nextjsのプロジェクト作成
- ワイヤーフレームの作成
- firebaseとの連携
- ログイン機能の追加
- firebaseのメアド認証機能
- 登録,メアド認証,追加のユーザ情報の登録のフローを完成
- MicroCMSとの連携
今からやること
- 個別のブログページのデザイン
- ブログページのデータ構造決定
- Netlifyにデプロイ
- MailGunで会員向けメールを送られるようにする

Nextfontを導入した使い方が変わっていた
next fonts

以下のコードで無限ループが起こった.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を使うべきではない

今からやることをまとめる
- メール配信機能
- 受け取るメールを選ぶ機能
- メールを配信する機能
- エラーページを設定
- コンテンツ投稿を試す
- アバウトタブを書く
- お問合せ先を書く

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.
というエラーが出た.原因はこれだったぽい
このスクラップは2024/03/30にクローズされました