🐡
Next.js + FirebaseにおけるAdmin SDKの利用
Next.js + Firebaseで実装する学習記録アプリのチュートリアル書籍を作成してみました。
クライアントサイドのSDKで効率的に実装できる、Firebaseを少々強引に、Next.jsのサーバーコンポーネントで実装してみました。
また、サーバライブラリのFirebase Admin SDKも利用してみています。
実装してみてよく分かったのは、以下内容です。
- Firebase Admin SDKはあくまでも、管理者が操作する前提であり、Firebaseの管理権限を持つサーバーで実行する前提
- 故に非常に強力な権限を持つ。FirestoreDBのCRUDもセキュリティルールを無視して実行出来る。
- ユーザーログイン、追加・更新、パスワード更新も、そのユーザーの認証を行わなくても実行出来る。
- クライアントのUIからAdmin SDKが実装されたサーバAPIを利用しDB操作やユーザ認証関係の処理を行う場合は、この強力な権限を考慮の上、サーバー側で、ユーザーの正当性担保、適切な権限付与をコントロールできるカスタム認証システムの構築等が必要
- そこまで実施が必要なシステム要件が無ければ、クライアントでの実装が合理的
この辺の棲み分けはこちらの記事が分かりやすかったです。
Discussion