SupabaseとFirebaseの基本的な違い
BaaS(Backend as a Service)の2大選択肢であるSupabaseとFirebaseは、根本的な設計思想が異なります。
FirebaseはGoogleが提供するBaaSで、2014年にGoogleに買収されて以降、GCPエコシステムの一部として進化してきました。NoSQL(Firestore)ベースのリアルタイムデータベースを中心に、認証・ストレージ・ホスティング・メッセージングなど幅広いサービスを提供しています。
Supabaseは「オープンソースのFirebase代替」を標榜し、2020年に本格始動しました。PostgreSQLをベースにしたリレーショナルデータベースを中心に据え、認証・ストレージ・Edge Functions・リアルタイム機能を提供しています。
機能比較表
| 項目 | Supabase | Firebase |
|---|---|---|
| データベース | PostgreSQL(リレーショナル) | Firestore / Realtime DB(NoSQL) |
| クエリ言語 | SQL | ドキュメントクエリAPI |
| 認証 | GoTrue(メール、OAuth、Magic Link) | Firebase Auth(メール、OAuth、電話) |
| ストレージ | S3互換オブジェクトストレージ | Cloud Storage |
| サーバーレス関数 | Edge Functions(Deno) | Cloud Functions(Node.js) |
| リアルタイム | PostgreSQL LISTEN/NOTIFY | Firestoreリアルタイムリスナー |
| ホスティング | なし | Firebase Hosting |
| プッシュ通知 | なし | FCM(Firebase Cloud Messaging) |
| Analytics | なし | Google Analytics統合 |
| A/Bテスト | なし | Remote Config |
| オープンソース | はい | いいえ |
| セルフホスト | 可能 | 不可 |
料金比較
Supabase
| プラン | 月額 | DB | ストレージ | Edge Functions |
|---|---|---|---|---|
| Free | $0 | 500MB、50,000行/月読取 | 1GB | 500,000呼出 |
| Pro | $25 | 8GB、無制限 | 100GB | 2M呼出 |
| Team | $599 | 優先サポート、SOC2 | 100GB | 2M呼出 |
| Enterprise | 要問合せ | カスタム | カスタム | カスタム |
Firebase
| 項目 | Spark(無料) | Blaze(従量課金) |
|---|---|---|
| Firestore読取 | 50,000回/日 | $0.06/100,000回 |
| Firestore書込 | 20,000回/日 | $0.18/100,000回 |
| Storage | 5GB | $0.026/GB |
| Cloud Functions | なし | 200万回/月無料、以降$0.40/100万回 |
| Hosting | 10GB | $0.026/GB |
| Auth | 無料(10,000 MAU以降 $0.0055/MAU) | 同左 |
ポイント: Supabaseは月額固定で予算が読みやすい。Firebaseは従量課金のため、トラフィック急増時にコストが跳ね上がるリスクがあります。一方、小規模なら Firebase の無料枠の方が使い勝手がよいケースもあります。
データベース:SQL vs NoSQL
これが最大の選択ポイントです。
Supabase(PostgreSQL)
- リレーショナル: JOINが使える。正規化したデータモデルが作れる
- SQL: 業界標準のクエリ言語。学習資料が豊富
- 拡張機能: PostGIS(地理情報)、pgvector(AI埋め込み)、pg_cron(定期実行)
- マイグレーション: スキーマ変更の管理が容易
- Row Level Security: PostgreSQL標準のセキュリティ機能
-- Supabaseでのクエリ例
SELECT users.name, orders.total
FROM users
JOIN orders ON users.id = orders.user_id
WHERE orders.created_at > '2026-01-01';
Firebase(Firestore)
- ドキュメント型NoSQL: JSONライクなデータ構造
- スケーラビリティ: 自動スケーリング、シャーディング不要
- リアルタイム: データ変更を即座にクライアントに反映
- 非正規化: JOINがないため、読み取り最適化のためにデータを重複させる
- サブコレクション: 階層的なデータモデル
// Firestoreでのクエリ例
const snapshot = await db.collection('users')
.where('role', '==', 'admin')
.orderBy('createdAt', 'desc')
.limit(10)
.get();
判断基準: データ間のリレーションが多い(ECサイト、SaaS等)ならSupabase。リアルタイム性が重要でスキーマが柔軟(チャット、IoT等)ならFirebase。
認証
| 機能 | Supabase | Firebase |
|---|---|---|
| メール/パスワード | ✅ | ✅ |
| OAuth (Google, GitHub等) | ✅ | ✅ |
| Magic Link | ✅ | ✅(メールリンク) |
| 電話認証(SMS) | ✅ | ✅ |
| 匿名認証 | ✅ | ✅ |
| カスタムクレーム | ✅(JWT) | ✅ |
| マルチファクター認証 | ✅ | ✅ |
認証機能はほぼ互角です。Supabaseは Row Level Security と組み合わせてDB レベルでアクセス制御ができる点が強みです。
こんなプロジェクトにおすすめ
Supabaseがおすすめ
- リレーショナルデータが中心: EC、SaaS、CMS、管理システム
- SQLに慣れている: 既存のSQLスキルを活かしたい
- ベンダーロックイン回避: オープンソースでセルフホスト可能
- AI機能を組み込む: pgvectorでベクトル検索が使える
- 予算管理が重要: 月額固定で予測しやすい
Firebaseがおすすめ
- リアルタイムアプリ: チャット、共同編集、ゲーム
- モバイルアプリ: FCM、Analytics、Crashlyticsの統合
- プロトタイプ: 最速でMVPを作りたい
- GCPエコシステム: BigQuery、Cloud Run等との連携
- フロントエンド開発者: SQLを書きたくない
メリット・デメリット
Supabase
メリット
- PostgreSQLの全機能が使える
- オープンソース、セルフホスト可能
- 月額固定で予算が読みやすい
- pgvectorでAI/ML対応
デメリット
- Firebaseほどのリアルタイム性能ではない
- プッシュ通知やAnalyticsは別サービスが必要
- エコシステムがFirebaseより小さい
- Edge FunctionsはDeno限定
Firebase
メリット
- 圧倒的なリアルタイム性能
- モバイル開発の包括的サポート
- Google/GCPとの深い統合
- 豊富なドキュメントとコミュニティ
デメリット
- ベンダーロックイン(Google依存)
- 従量課金でコストが予測しにくい
- JOINが使えない(非正規化が必要)
- データのエクスポートが面倒
結論:どちらを選ぶべき?
Webアプリ、SaaS、管理ツールを作るならSupabaseがおすすめです。PostgreSQLの信頼性とSQLの汎用性は、長期的な開発で確実に活きてきます。
モバイルアプリ、リアルタイムアプリを作るならFirebaseが強いです。FCM、Analytics、Crashlyticsまで揃ったモバイル開発スイートは他にありません。
迷ったら「データのリレーションが複雑か?」で判断してください。複雑ならSupabase、シンプルならFirebase。これが最も外さない選び方です。
BaaS以外の開発ツールも含めて比較したい場合は、Assisty AI ディレクトリをご活用ください。
Assistyでは、この記事で紹介した内容を実際に試せるJSON整形ツールを無料で提供しています。ブラウザ上で完結し、データがサーバーに送信されることはありません。