🐡

Next.js + FirebaseにおけるAdmin SDKの利用

に公開

Next.js + Firebaseで実装する学習記録アプリのチュートリアル書籍を作成してみました。

https://zenn.dev/amayann/books/ecf7145aa6dca9

クライアントサイドのSDKで効率的に実装できる、Firebaseを少々強引に、Next.jsのサーバーコンポーネントで実装してみました。
また、サーバライブラリのFirebase Admin SDKも利用してみています。
実装してみてよく分かったのは、以下内容です。

  • Firebase Admin SDKはあくまでも、管理者が操作する前提であり、Firebaseの管理権限を持つサーバーで実行する前提
  • 故に非常に強力な権限を持つ。FirestoreDBのCRUDもセキュリティルールを無視して実行出来る。
  • ユーザーログイン、追加・更新、パスワード更新も、そのユーザーの認証を行わなくても実行出来る。
  • クライアントのUIからAdmin SDKが実装されたサーバAPIを利用しDB操作やユーザ認証関係の処理を行う場合は、この強力な権限を考慮の上、サーバー側で、ユーザーの正当性担保、適切な権限付与をコントロールできるカスタム認証システムの構築等が必要
  • そこまで実施が必要なシステム要件が無ければ、クライアントでの実装が合理的

この辺の棲み分けはこちらの記事が分かりやすかったです。
https://zenn.dev/cloud_ace/articles/firebase-auth-guide

Discussion