Open5

読者コミュニティ|【Hasura 本格入門】認証機能付きのタスク管理アプリを作成しよう(Hasura & Next.js14 & Firebase Auth)

isoseaisosea

いつもハイクオリティな教材をありがとうございます!
無料期間が昨日までと聞いてサクッと取り組んでみました笑

1点つまずいた点があったので書いておきます。
Auth.js と Firebase Auth を使って認証機構を作成しよう(その2) の中でNextSSRApolloClientが使用されていると思うのですが、後の動作確認で以下のようなエラーが出てしまいました。

 ⨯ TypeError: _apollo_experimental_nextjs_app_support_ssr__WEBPACK_IMPORTED_MODULE_1__.NextSSRInMemoryCache is not a constructor
    at eval (./src/lib/apollo-client.ts:48:16)
    at $$ACTION_0 (./src/actions/user/index.ts:18:109)
  42 |
  43 |   return new NextSSRApolloClient({
> 44 |     cache: new NextSSRInMemoryCache(),
     |           ^
  45 |     link,
  46 |   });
  47 | });

原因はよくわからなかったのですが、NextSSRApolloClientApolloClientに、NextSSRInMemoryCacheInMemoryCacheにすることで解決しました!

apollo-client-nextjsのREADMEにはRSCとSSRを使い分けるようにと記載があります。
https://github.com/apollographql/apollo-client-nextjs?tab=readme-ov-file#usage

今回はRSCでのユースケースに該当するので、NextSSRApolloClientではなくApolloClientの利用が適切かと思いました!

以上です!ありがとうございました!

FarStepFarStep

isosea さん

いつも書籍をご覧いただきありがとうございます。
そして、いつも誤植やコードの誤りをご指摘いただきありがとうございます。
大変助かります。

おっしゃる通り、今回は RSC を採用していますので、ApolloClientInMemoryCache の利用が正しいですね。

先ほど、書籍の内容を修正しました。
引き続きよろしくお願いします。

babababababa

めちゃくちゃ参考になりました、ありがとうございます!
この本のおかげで、Hasuraのわかりづらいと感じていた部分が大分スッキリしました。
また、他の本も購入させていただこうかと思います。
(もしデプロイ編が出たら即購入させていただきます…)

FarStepFarStep

bababa さん

本書籍をご覧いただきありがとうございました。
そう言っていただけて本当に嬉しいです。

デプロイに関する章の追加も検討します。
ちなみに、デプロイする際に使用した技術スタックは下記の通りです。

  • Vercel(Next.js アプリケーションのデプロイ)
  • Cloud Run(Hasura アプリケーションのデプロイ)
  • Neon(データベース)
  • Terraform(IaC)

こういったコメントはとても励みになります。
引き続きよろしくお願いします。