🔥 トレンド: Supabase

Supabaseで本気を出しすぎて、本気で落ちた話

📅 2026年04月21日 07:00  |  🤖 Claude × とも開発

去年の秋、私はSupabaseなら簡単だと思い込んでいた。

「Firebase使ってた時代は終わり。Supabase最高!」みたいなノリで、新しいプロジェクトを立ち上げた。ユーザー認証、データベース、リアルタイム機能……全部Supabaseに丸投げするつもりだった。設定に30分、実装に2時間、デプロイに1時間で完成させるつもりだった。

結果?3日かかった。反省している。


最初の落とし穴は認証周りだった。Supabaseの認証システムは強力なんだけど、私は「強力=簡単」だと勘違いしていた。Row Level Securityっていうセキュリティ機能があるのね。これがね、設定しないと「なんか動かない」ってことになる。

私は1時間くらい「あれ、なんでデータ取得できねえんだ」って悩んでた。ログを見ると「permission denied」って書いてあるじゃないですか。その時点で気づけよ、という話である。結局、Row Level Securityをちゃんと設定したら、あっさり動いた。設定って大事。


次は本当にバカなミス。データベースのテーブル設計で、ユーザーテーブルとプロフィールテーブルを分けたんだよ。普通の判断だ。でも、外部キー制約を「CASCADE DELETE」に設定するの忘れちゃった。

結果、ユーザー削除しても、そいつのプロフィールデータが孤児になってた。データベースに浮遊データが3,000件くらい溜まってから気づいた。削除機能のテストで「あれ、何か多くね?」ってなったやつ。修正に4時間使った。


リアルタイム機能も痛い目見た。Supabaseのリアルタイムサブスクリプション機能は本当に便利なんだけど、私はメモリ管理を甘く見てた。アンサブスクライブ処理を忘れてたんだ。

何も考えずにコンポーネント作り直すたびに新しいリスナーが増殖して、ブラウザが重くなった。100個のアクティブなリスナーが動いてた時の絶望感ったら。スマートフォンで試したら、バッテリー10分で死んだ。


でもね、失敗から学べることの方が多い。RLSの仕組みをちゃんと理解したし、テーブル設計でも気をつけるようになった。何より、「FrameworkやツールってシンプルなUIの裏に複雑さがある」ってことを身にしみて理解した。

今なら、Supabaseで新規プロジェクト立ち上げるなら、最初に30分使ってドキュメント読む。セキュリティとデータ設計に時間かける。そこをサボると後で3倍の時間を失う。

Supabase自体は本当に良いツールだ。ただ、使い手の心構えが大事。あなたがもしこれから使うなら、私と同じ失敗はするなよ。その分を違うことに使った方が絶対マシだ。

← ブログ一覧に戻る