この記事はCPS Lab Advent Calendarの12日目です。
最近DJのために懐かしいアニメの曲を探すのにハマっているスポーンです。
アニマル横町のOPとポケモンの「バトルフロンティア」を見つけて膝から崩れ落ちました。
今日はGoogleが提供しているFirebaseの紹介をしたいと思います。
Firebaseの機能を使えばアプリケーション開発で必要なデータベースからhttps
を使ったホスティングまで一貫して同一プラットフォーム上で行うことができ、デプロイまでの時間を短縮できます。
値段も基本無料で使えるため、プロトタイピングには最適だと思います。
Realtime Database
作ったのはだいぶ前なのでコードが拙いのですが、このアプリケーションのDBにはRealtime Database(以下RTDB)を使っています。
RTDBはキーバリューストアとしてデータを登録できるNoSQLデータベースです。最大の特徴は名前にもあるようにリアルタイムに値を同期することができます。
シングルページアプリケーションのようなページ遷移をしないものには有効に使えて、チャットアプリなどの構築がすぐに行なえます。
オッパブではオッなURLとオッポイントを同期しているので、他の人が更新すると自分のページがロードせずとも更新されるようになっています。
Hosting
プロジェクトごとにユニークなURLが割り当てられてサイトをホスティングする機能があります。
https
通信にデフォルトで対応しているので、めんどうな設定をしなくてもすぐに使うことができます。
firebase-toolsというCLIを使えばホスティング時の設定なども簡単に行えてデプロイまでできるので、TravisCIなどのCIサービスと組み合わせてmasterブランチの変更をフックしてリリースが簡単にできます。
もちろん独自ドメインも簡単に接続できるので、SPAにかぎらず普通の静的ページのホスティングにもオススメできます。
ちなみにotintin.comもこちらでホスティングしています。
所感
簡単ではありますが、SPAを最速でリリースするためのFirebaseのサービスを紹介しました。
ただ、RTDBは気をつけないと治安の無いカオスJSONになったり、一覧を取得したときに子ノード全てを取得してしまうので、ネストを浅くしないといけないなど色々と悩ましい部分もあります。
これは最近ベータ版がリリースされた、Google FirestoreというGCEのサービスを使うと解決できそうなので、中規模以上のアプリケーションを使う時やクエリを使いたいときなどに導入してみようと思います