Lapis Lazuli

technical blog for web developer

【firebase】サービスについて

どうもこんばんは、プライベートではfirebaseを使いまくってるyusukeです。

今回はgoogleが提供するfirebaseを、自分の中で整頓する意味も含めてまとめてみました。

そもそもfirebaseって・・・?

一言で言うと、mBaaSと言われるサービスです。
バックエンド側の色々を、わざわざ自分で作らなくてもやってくれる便利なサービスです。

といっても何があるのか基になりますよね。沢山の機能があるんですが、主に以下の4つに絞りました。

hosting

手軽にhtmlなどの静的ファイルをアップして公開できるサービスです。

firebase.app.com
web.app

というドメインも付与されるので、とりあえずはこれでwebの公開がサーバー側を全く触らずに公開出来ます。
もちろん自分で独自ドメインを登録することも可能です。

一つ気をつけたいのは、あくまでも静的ファイルをホスティングするサービスなので、PHPなどは動きません。
なので動的なページにしたい場合、フロントエンドのフレームワークであるVue.jsなどを使っていくことになります。

僕のサークルのwebもこれを使ってます。フレームワークはVue.jsです。

functions

サーバーレスのスクリプト実行環境です。
AWSでいうlambdaでしょうか。APIを作りたいときに重宝します。
ただGCPのGAEと違い、言語はnode.jsのみになります。
使ったことのない人にとってはネックになりますが、hostingと合わせて使うと同じJavaScriptで統一されるので、開発しやすいというメリットがあります。

firestore

いわゆるNoSQLのデーターベースです。
ドキュメント指向のDBとなっており、コレクションの中にドキュメントがある形になってます。
更にサブコレクションを設定することもでき、複雑な関係のデータを管理することが出来ます。

以前はRealtimeDatabase(以下RD)もあったのですが、こちらが正式リリースされ、より柔軟性の高いサービスとなりました
2つの主な違いはDBの構造になります。
RDは一つのJSONでデータを管理するので非常にシンプルな作りになってます。

まーこれでも使えるのですが、やっぱりちょっと複雑になると使いづらかったり・・・

なので今から使うのなら断然firestoreのほうをオススメしますね。

analytics

このアナリティクス機能は正直アプリでしか使ってません・・・
のでアプリに組み込んだ感想のみを書きます。

アクティブ数や特定のイベントなどを集計できるサービスです。
一定期間の継続数や課金情報なども一目で分かるので、必要なものは一通り揃っていますね。

組み込むのもコードを数行追加するだけなので、とても簡単です。

料金もすばらしい

とまあ、ざっくりと言えばこんな感じでしょうか。

サービスの充実度もすごいのですが、何より無料でこれらが使えるのが素晴らしいです。

もちろん無料枠の上限というか、制限はあるのですが、個人で多少使ったくらいでは上限まで使える事はないと思いますね。

firestore:データ1GB/月、読み出し5万/日
hosting:データ1GB、転送10GB
functions:呼び出し12.5万/月

が無料で使えます。スゴすぎますね。ここまで使っていいのかと思うくらいに。

次回は具体的な例を交えて説明していこうと思います。それでは。