はじめに
FirebaseはGoogleが提供している、モバイル・ウェブアプリ開発用のバックエンドプラットフォームで、Firebaseを使うことで簡単にアプリケーションを作成できるサービスです。
以前のTech-Blogでも「FirebaseのMLKITを利用して文字列の読み取りをしてみた」で登場したプラットフォームですが、具体的にアプリ開発の方法について解説していく記事です。
今回は「概要編」「環境構築編」「アプリ開発編」の3回に分けてお届けします。
概要編
まずは、「Firebaseとはどんな役割をするサービス・プラットフォームなのか」を解説していきます。
1.Firebaseとは
Firebase(ファイアベース)はもともとはFirebase, Inc.が開発したアプリケーション開発プラットフォームでした。最初にサービスインした機能はリアルタイムにデータを同期する「Firebase Realtime Database」。
iOS、Android、Webアプリでアプリケーションデータを同期し、クラウド上に保存するAPIを提供するもので、クロスプラットフォームでデータを同期できるため、チャットメッセージやゲームのスコア、状態などの同期に使われました。
2014年にGoogleに買収され、Googleが持つAPIや製品と統合することでBaaSプラットフォームとしてサービスを拡充し続けています。
2.BasS
BasSとはBackend as a Serviceの略でアプリ開発におけるバックエンドの機能をサービスとして提供するものです。Firebaseはモバイル(iPhone/Android)の開発の機能も豊富であることから、mBasS(mobile Backend as a Service)と呼ばれることがあります。
BaaSが提供する機能はどのアプリケーションにも必要になる普遍的な機能であることが多く、従来はこれらの機能を提供するバックエンドアプリを作り込むこともアプリ開発に含まれていました。
アプリケーション開発の高速化・利便性が求められることが増えてきている中で、バックエンドの仕組みを独自に実装する時間をアプリの操作性など別の部分にリソースを使うためにBasSを用いることも増えてきています。
どのアプリケーションにも必要なこれらの機能は毎回実装する必要も無いし、作り込むのにも手間がかかる、なのでBaaSを使って簡単にサービスを作り、すぐにリリースしようというのがBaaSの利点の一つになります。
3.主な提供機能
FIrebaseが提供する主な機能をいくつか紹介します。
BaaSでも説明した通りどのアプリケーションにも必要となる機能が多いので、今回の連載で使う機能を中心に以下の機能を解説します。
- Firebase Authentication
- Firebase Realtime Database
- Firebase Hosting
Firebase Authentication
クライアント側のコードのみでユーザー認証(サインイン、ログイン)が行え、メールアドレスの認証の他にも、電話番号によるSMS認証、Googleアカウント、Twitter、Facebookなどのソーシャルログインプロバイダもサポートしている認証基盤。
クライアント側のコードは10数行程度でサインイン、ログインが実装できます。「認証」の機能のみを提供するため、「認可」(権限やロールなどによる画面の制御)は自前で実装する必要はあるが、ログインに関わるバックエンドの仕組みを代替することができます。
Firebase Realtime Database
最初にリリースされた機能。リアルタイムデータベースの操作APIを提供し、アプリケーションのデータをFirebase上に保存し、クライアント間で同期させることができます。
データの登録、更新、削除が発生するために対応するイベントが各クライアントに即時に発報するため、端末間の同期をシームレスに行うことができるのが特徴です。
データベースにアクセスする方法も複数用意されており、REST APIの他、SDKもそれぞれのプラットフォームで提供されています。
Firebase Hosting
Firebase HostingはHTML・CSS・JSファイルなどの静的コンテンツを公開するホスティングサービス。Firebaseでウェブアプリを作る場合、画面の描画処理等はブラウザ側のJavascriptで処理するようになったため、JavaやPHP、Python、Rubyなどウェブアプリケーションを動作させるサーバーが不要となりました。
単純にHTML・CSS・JSを配置するためだけに自前のサーバーを用意して運用していたが、Firebase Hostingの登場により開発者はFirebaseだけでウェブアプリケーションを運用できるようになった。
4.まとめ
- 必ず作っていたログイン、ログアウトなどの汎用機能を作らなくて良いし、データをシームレスに同期できる
- 運用する面でもアプリケーションサーバーを別途用意しなくて良いし、データベースも用意しなくていい
開発者の負担が減り、本当に必要なお客様の体験につながる「アプリの機能」に集中できそうな気がしませんか?
Firebaseにはまだまだ機能がたくさんあります。GoogleのAPIと組み合わせると更に機能が増えてきます。必要な部分だけを作れるような環境が出来上がってきているのかもしれません。
次回は「環境構築編」をお届けします。