皆様こんにちは。 久しぶりの技術ブログ更新だ。
最近私が使い始めたPaasである「Supabase」について軽くご紹介しようと思う。
Supabaseは「FireBaseの代案」と名高い新しいPaasだ。
今回はFireBaseとSupabaseの比較も合わせてご紹介するので参考になるのではないかと思う。ぜひ最後まで見ていってほしい。
因みに今開発中のSupabaseを使ったプロジェクトを下記に記したのでもしよければ見ていってほしい。まだ何を作るかは定まっていないが、とりあえず模索しながら開発をしている。
それではまずは目次からご覧いただこう。
こんなところだろう。
FireBaseをご存知ない方のために少し説明させていただく章を設けたので分かりやすいかと思う。
それでは早速ご案内していこう。
Supabaseの概要⚡️
まずはSupabaseの概要から綴っていこう。
Supabaseはあらゆるバックエンド機能の実装を代行してくれるクラウドサービスだ。例えばアプリケーションに必要な機能で
データベース ストレージ 認証機能
等、なくてはならない機能を代行してくれるのだ。 今回は「データベース」について簡単にご紹介しよう。
データベース
SupabaseにおけるデータベースはPostgreSQLを採用している。これは後ほど綴るFireBaseとの大きな違いの一つでもある。
PostgreSQLは RDB(リレーショナルデータベース) であり、テーブル や カラム といった概念が絡んでくるため、従来のエンジニアからすると扱いやすく学習コストが低いのだ。
一例をお見せしよう
テーブル |
少し画質が荒くて申し訳ない。こちらが実際のSupabase内のエディターである。画像では「lists」というテーブルに「id・uid・text・title・createAt・updateAt」といった簡単なカラムを設けている。全てUIで設定できるところもポイントだ。
ここがヤバい💡
ここで私がSupabaseを使ってて、「これは良いぞ!」と思ったところをご紹介しよう。
それは、
APIのドキュメントである
先ほどと同様に実際の画像をご覧いただこう。
APIドキュメント |
お気づきだろうか?
そう、「設定したデータに応じてドキュメントを表示してくれているのだ」
右のサイドバーにあるコードが見えるだろうか?それを参考にしながらコードに落とし込んでいけば直ぐにCRUD操作ができるのだ。
ドキュメントというと目紛しく映るAPI(メソッド)を読み解かなくてはならず、大変な労力を強いられる。 しかし、Supabaseでは厳選したAPIをエディタ上に表示してくれているのだ。
とても優れたUI/UXであると感じた。
続いてFireBaseの概要をざっくり説明しよう。
Firebaseの概要🔥
FireBaseは先ほどご紹介したSupabaseと同様のバックエンド機能を代行してくれるPaasだ。
充実したAPIと手厚いサポートが売りである。従量課金制で無料枠を超えて使った分だけ支払えばサービスを受けられる。
提供されるサービスはSupabaseよりも豊富であり、その界隈では圧倒的なシェアを誇る。
前章のSupabase同様にデータベースを軽くご紹介しよう。
データベース
FireBaseでは大きく2つのデータベースが提供されている。それは、「FireStore」と「Realtime Database」である。それぞれ多少仕様が異なるのだが、共通していることは、
NOSQL
であることだ。
NOSQLとは前章でご紹介した「ProgreSQL」と異なり、テーブルとカラムといった概念が存在しない。
見た目はJSONに近い。
従来のテーブルやカラムといった概念を持っているデータベースを扱ってきたエンジニアからすると、多少学習コストがあるだろう。しかし、慣れればその柔軟さに驚愕することだろう。
ちなみにFireStoreとRealtimeDatabaseの違いについては公式のドキュメントで綴られているのでこちらをご確認して頂きたい。
簡単に説明すると
FireStoreがベースとなるデータベースでRealtimeDatabaseはリアルタイム制が求められる機能(主にチャットやライブ等)に使われる事が多い。
筆者はデータベースの負荷を分散させるために両方使用している。しかし、それぞれ提供されているAPI(メソッド)が全く違うので学習コストは嵩むので注意してほしい。
SupabaseとFireBaseの比較⚖️
SupabaseとFirebaseの比較を下記の表にまとめたのでご確認いただこう。
- | Firebase | Supabase |
---|---|---|
認証 | メール認証・その他主要SNS認証 | メール認証・GoogleGitHub等 |
データベース | NOSQL | PostgreSQL |
ストレージ | Firestorage | 対応 |
関数(Function) | FireFunctins | 未対応(beta版有) |
※2021/03/30 23:30追記 Supabaseストレージ対応済み
機能の豊富さやサポートはまだFireBaseに軍配が上がる。
料金はいずれも基本使用量無料である。
Supabaseはこれから詳しい料金携帯を発表するようなので今後も注目だ。
おわりに
いかがだっただろうか?
かなりざっくりした概要になったがご理解いただけただろうか。今後はSupabaseを使用したwebアプリを主軸に個人開発していく。その中でも新たな発見があったら是非共有させていただこう。
言い損ねていたが、Supabaseのエディターは日本語対応していないためFireBaseと比べると初学者の難易度は高いので、まずはFirebaseから着手すると良いだろう。
少しでも皆様の参考になれば幸いである。