💬
FirebaseとSupabaseの違いを列挙してみる
チーム開発をしている中でSupabaseを利用しているのですが、似たようなサービスにFirebaseというものがあるという話をよく聞きます。
ただ、Firebaseに関しては今まで全く知らなかったので、勉強のためにSupabaseと比較してみたいと思います。
そもそもFirebaseとSupabaseとは何か
FirebaseとSupabaseは両方ともBaaS(Backend as a Service)です。
BaaSとは開発者がバックエンドの機能を簡単に利用できるようにするクラウドサービスで、BaaSを利用することで、開発者はフロントエンドの開発に集中できます。
FirebaseはGoogle社が運営しており、Supabaseは独立した組織が運営しています。
FirebaseとSupabaseの違い
この2つのサービスは非常に似通っていますが、私が感じた差異を以下に上げていきます。
- データベース
FirebaseがドキュメントベースのNoSQLなのに対し、SupabaseはPostgreSQLを使用しています。
この2つを比較すると、NoSQLが柔軟性が高い一方でPostgreSQLは複雑なクエリが得意という特徴があります。
また、Firebaseを利用する際にはNoSQLの記法を学ぶ必要があるのに対し、Supabaseを利用する際には今までのSQLのスキルが利用できるといった点も大きいと思います。 - カスタマイズ性
Supabaseはオープンソースソフトウェアであり、ユーザーが自由にカスタマイズして使うことができます。
また、コミュニティも活発で情報交換が頻繁に行われており、仕様を理解出来るユーザーであればカスタマイズ性は非常に高いといえます。
それに対し、FirebaseはGoogleが定める範囲でのみカスタマイズすることができます。 - 他サービスとの統合性
FirebaseはGCPの一部であり、GCPの他のサービスと統合されています。
このためGCPの様々な機能をフルに活用することができます。
それに対し、SupabaseはGCPに存在するサービスを他のオープンソースサービスで代替することになります。 - ベンダーロックインリスク
Firebaseは機能のほとんどをGCPに依存する関係上、他のサービスに移行することが非常に困難です。
こういったリスクをベンダーロックインリスクと呼びます。
それに対し、Supabaseはオープンソースであるがゆえにサービスの中身を把握することができます。
それによりベンダーロックインのリスクはFirebaseよりは低いといった印象です。
まとめ
FirebaseとSupabaseを調べていて感じたのは、iosとAndroidの関係性に近いということです。
FirebaseはGCPと統合されているため、様々な機能が容易に利用できますが拡張性が低く、Supabaseは自分でサービスを構築する自由度があるぶん、知識が求められるといった印象です。
Discussion