【第1回】 Google の mBaaS 「 Firebase 」とは?【はじめてみよう Firebase】
- Firebase
- mBaaS
モバイルアプリケーションをいち早くリリースするには、バックエンドで動くサービスの構築がネックになります。 DB サーバを用意したり、 DB にアクセスするための API サーバの構築や認証など、どうしても作業が多くなってしまい、コストもかかってしまいます。
リリースしてもサーバの管理は必要になり、利用者が増えればスケーリングなどの対応が必要になってきます。今回はこのような問題を解決するための GCP の mobile Backend as a Service(mBaaS)「 Firebase 」を紹介します。
目次
この記事の目的
- Firebase とは何かを理解しよう。
- Firebase の使いどころや特徴を学ぼう。
Firebase とは
Firebase は Google が提供しているモバイルおよび Web アプリケーションのバックエンドサービスです。クラウドサービスの形態では BaaS に位置付けされます。 Firebase を使うことで、開発者はアプリケーションの開発に専念でき、バックエンドで動くサービスを作成する必要も管理する必要もありません。
サービスの早期リリースという要件が求められたときに、サーバレスアーキテクチャが注目され、 BaaS というクラウドサービスの形態が登場しました。サーバサイドの開発費を抑え、かつ工数もかからない。サービスの利用者が増えてもサーバの増築を意識しなくて良いなどの利点から、 Web サービスほどサーバを必要としないモバイル向けのサービスの BaaS に注目され、様々な BaaS が登場しました。
Firebase もその中の一つです。 Firebase はもともとは Google とは独立したサービスでしたが、2014年に Google に買収され、 GCP の仲間入りをしました。現在は GCP の様々なサービスと連携して使うことができるようになっています。
Firebase の機能
BaaS には、独自のビジネスロジックを組み込むことはできません。そのため、多くの BaaS には、データベース機能以外にも、 SNS 連携や Android 、 iOS の SDK などが提供されています。煩わしい認証は SDK が BaaS と連携してくれて、クライアントは数行のコードを書くだけで実現することができます。もちろん Firebase にもこういった機能がサポートされており、 Firebase では以下のような機能が提供されています。
Realtime Database
Firebase に元から含まれているオブジェクト型のデータベースです。リアルタイムでクライアント全体の状態を同期させることができ、オフラインで動作するときはデータをキャッシュしてオンラインになった時に自動的にデータを同期します。
Cloud Firestore
Realtime Database の性能をさらに向上させた、新しい主力のデータベースです。 Realtime Database より高速でスケールアウトにも対応しています。こちらもオブジェクト型のデータベースとなっています。現在ベータ版となっていますが、 Google は Realtime Database より Cloud Firestore を推奨しているため、今後は Realtime Database に取って代わるデータベースになるように思われます。
Cloud Storage for Firebase
写真や動画などバイナリーデータを保存します。保存先は Cloud Storage となっており、 Firebase と Google Cloud の両方からアクセスできます。また、スケールアウト機能も兼ね備えており、急激なアプリケーションの拡大にも対応しています。
Firebase Authentication
Firebase Authentication は、 Google のフェデレーション認証で、 Google 以外にも Facebook 、 GitHub 、 Twitter などのサードパーティの認証情報を使用して、クライアントアプリケーションのログインを行うことができます。また、フェデレーション ID 以外にもパスワード認証や電話番号認証にも対応しています。
Firebase Cloud Messaging(FCM)
Firebase Cloud Messaging を使うことで、様々なプラットホームで動いているアプリケーションに対してメッセージを送ることができます。今までは Google Cloud Message を使ってサーバからのプッシュ通知を行っていましたが、これからは、Firebase Cloud Messaging を使うことが推奨されています。
Google Cloud Functions for Firebase
Cloud Functions for Firebase を使うことで、イベントドリブンなアプリケーションを作成することができます。 SMS メッセージの送信などの処理のような外部サービス連携などを行うことが可能になります。また、クライアントアプリケーションに実装させるには重たすぎるような処理を Cloud Functions for Firebase に委ねることができます。
Firebase Hosting
Firebase Hosting はスタティックな Web ページを公開することができます。近年では HTML 、 CSS 、 Javascript を組み合わせてアプリケーションのような Web ページを実現することができるようになりました。こういった Web ページも Firebase Hosting を使って公開することもできます。
また、 Web ページでは、エッジキャッシュの機能を利用することができので、世界各地に分散している Google のエッジ接続拠点を使って高速にユーザに配信することができます。
その他
その他に、 Test Lab for Android や Performance Monitoring などの機能があります。
Firebase SDK
これらの機能を簡単に使える SDK が提供されています。サポートされているプラットフォームには、 Android 、 iOS 、 Web 、 Unity 、 C++ 、などがあります。最近話題の、 Google のモバイル開発向けクロスプラットフォーム Flutter もサポートしています。また、一部の SDK はオープンソースで公開されており、 GitHub でソースコードを確認することができます。
これらの SDK は一部の IDE からも利用することができ、 Android Studio ではリファレンスを開かなくても、そのまま使うことができるサンプルコードが表示されるという便利な機能があります。主要な SDK 以外にも以下のような SDK やツールが提供されています。
- Firebase SDK
- Realtime Database, Cloud Firestore, Firebase Hosting など Firebase の主要な機能をサポートします。
- Javascript, Android, iOS, Unity などのプラットホームをサポートしている
- Firebase UI
- Firebase SDK 上に UI の構築をサポートする。ログイン UI の構築などが提供されている。
- Firebase Admin SDK
- Realtime Database の完全な読み書きや、エンドユーザーのアクセス権限などのような管理機能が提供されています。
- ML Kit
- Firebase から、テキスト抽出や、顔認識、バーコード読み取りなどの画像認識機能を実装することができます。
Firebase の使い所
Firebase にたくさんの機能があることはご理解いただけたと思います。では、どんなときに Firebase を使うのかを考えてみましょう。
まず、プラットホームが Android 、 iOS を対象としたモバイル向けのゲームアプリケーションを開発することになったとします。そして、ゲームにはチャット機能、お知らせ機能、 SNS アカウントによるログインを想定しています。このような場合は、チャット機能に FireStore 、お知らせ機能に FCM 、 SNS アカウントのログインに Firebase Authentication が使え、バックエンドサービスを構築する必要がありません。
バックエンドサービスの代わりに Firebase を使うことで、すばやくアプリケーションをリリースすることができ、管理も不要です。 Firebase にはたくさんの機能があるので、例えばリリース後に動画のストリーミング再生の機能が必要なっても今度は Cloud Storage For Firebase を使って実現することができます。
Firebase はサーバレスアーキテクチャを導入しようとしたときに最適なサービスとなっており、特にモバイル向けのサービスやフロントエンドな Web アプリケーションの開発には有効な手段となっています。
終わりに
いかがでしたか。 Firebase にはたくさんの機能とそれをサポートするための豊富な SDK が用意されており、簡単にアプリケーションに組み込むことができるようになっています。次回からはこれらの機能を使ってどうやってアプリケーション開発をしていくのかを説明します。
GCPのスキルアップをしたい方へおすすめの記事
Google Cloud認定資格とは?本気で目指すならGCPトレーニングがオススメ
【関連記事】
【Firebase アナリティクス技術調査レポート
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜Firebase / Firestore編〜
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
お問合せはこちら
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!