Rebounder Tech Blog

運用している当事者が書く、本番システムの記録。

同じアプリを Firebase と Supabase の両方で作った

公開 読了時間 約2分執筆: Rebounder 開発チーム(当該システムの運用当事者)

※本記事にはアフィリエイトリンクを含む場合があります。内容は広告の有無に影響されません。

結論

Firebase は設定なしで動き始める代わりに構成の自由が利かず、Supabase は SQL ベースで自分で制御できる代わりに動き出すまでの距離が長い。

v1 は Firebase

最初のバージョンは Firebase で作りました。理由は単純で、とにかく簡単だからです。

認証もデータベースも、難しい設定なしにすぐ動きます。「まずアプリを形にして動かす」までの距離がいちばん短い。最初の一歩や、動くものを作りきるまでの体験としては、この手軽さは強いです。

v2 は Supabase

同じアプリを Supabase で作り直しました。理由は、もっと自由に組みたくなったからです。

Supabase は SQL ベースで、データの扱いも構成も自分でコントロールしやすい。そのぶん Firebase ほど「何も考えず動く」わけではありません。決めるべきことが増えます。

ただ、作り込んでいくフェーズでは、この自由度がありがたくなります。

住み分け

Firebase Supabase
立ち上がりの速さ 速い 手数が要る
構成の自由 利かない 利く
向く段階 まず動かす 作り込む

順番の話

実際にやってみて一番しっくりきたのは、最初から正解を選ぼうとしないことでした。

  • v1 = Firebase … 手軽さで、まず動くものを立ち上げる
  • v2 = Supabase … 要求が上がったので、自由に組めるほうへ移す

「どちらが優れているか」ではなく、どちらが今の段階に合っているかで選ぶ。要求が上がった時点で乗り換える前提を持っておくと、最初の選択に時間をかけずに済みます。

乗り換えは移行ではなく再実装だった

ひとつ正直に書いておくと、Supabase への移行は既存コードの移植ではなく、作り直しになりました。データモデルの考え方が違うので、設計から引き直すことになります。

「後で移せばいい」と考えるときは、移行コストが再実装コストであることを前提に置いておくのが妥当です。それでも、最初に完璧な選択をしようとして止まるより速いというのが、両方やった結論でした。

よくある質問

Q1最初から Supabase を選ぶべきですか?

動くものを早く見たい段階では Firebase のほうが確実です。要求が上がって構成を自分で制御したくなった時点で Supabase へ移す、という順番が実際にやってみて一番しっくりきました。最初から正解を選ぼうとしないほうが早く進みます。

Q2移行のコストはどれくらいですか?

同じアプリを作り直す形になりました。データモデルの考え方が違うので、既存のコードをそのまま移すのではなく設計から引き直すことになります。移行というより再実装に近いです。

Q3Supabase が難しいと感じるのはどこですか?

Firebase ほど「何も考えず動く」わけではない点です。SQL ベースで構成を自分でコントロールできるぶん、決めるべきことが増えます。それが利点になるのは、作り込むフェーズに入ってからです。