6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CPS LabAdvent Calendar 2017

Day 12

FirebaseでSPAを最速でリリースする

Last updated at Posted at 2017-12-12

この記事は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のサービスを使うと解決できそうなので、中規模以上のアプリケーションを使う時やクエリを使いたいときなどに導入してみようと思います

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?