Firebase 入門 - Firebase とは

2020/08/06

 

Firebase とは

Firebase は Google が提供する MBaas 型サービスで、Webやスマホアプリ開発で必要なサーバ側(バックエンド)の処理を自前サーバを用意せずに支援します。

似たようなサービスに AWS Amplify があり、Firebase と比較して高機能なため最近 Amplify のシェアも伸びています。

開発レベルであれば基本的に無料

Firebase は利用した分だけ課金される「従量課金性」ですが、条件の範囲に収まっていれば無料で利用できます。

開発レベルや大量の通信やアカウントのアクセスがなければ無料で運用できるかも知れません。

2つのプラン

Spark

Sparkプランは、サービスによって機能制限があります。無料枠を使い切った場合にデータ取得ができなくなります。

Blaze

Blazeプランは、無料枠を使い切ったあとに従量課金制で、大規模開発に対応する全ての機能が利用できます。

認証やデータ取得の回数に応じて課金されるので、料金計算シミュレーターやアラート設定などを利用して料金を抑えるようにしましょう。

Firebase のメリット

Firebase を利用するメリットは、

  • アプリとサーバでデータのリアルタイム同期を実現
  • 自前サーバを用意しなくてもよい
  • 面倒な SNS認証やプッシュ通知が簡単に実現
  • 様々な言語に対応(JavaScript、Swift、Objective-C、Java など)

など、サーバ側の処理を 1から開発することなくアプリ開発に集中できます。

Firebase の主な機能

Firebase の主な機能として、静的コンテンツ(HTML、画像など)を配置したり、データベースのリアルタイム通信、SNS認証やプッシュ通知といった、ネットワーク経由でリアルタイム性のある機能をサポートします。

主な機能は以下の通りです。

Realtime Database(リアルタイムデータベース)

https://firebase.google.com/docs/database?hl=ja

NoSQL のクラウドデータベース(JSON型で保存)で、タイムラグの少ない同期を実現します。

Cloud Firestore

https://firebase.google.com/docs/firestore?hl=ja

リアルタイムデータベースの高機能版で、Google では Firestore を推奨しています。

料金は動作によって異なりますが無料枠があります。(2020/08時点)

無料枠

無料枠 割り当て
保存データ 1 GiB
ドキュメントの読み取り 50,000/日
ドキュメントの書き込み 20,000/日
ドキュメントの削除 20,000/日
ネットワーク(下り) 10 GiB/月

超過分

  無料割り当て超過分の料金
ドキュメントの読み取り ドキュメント 100,000 点あたり $0.06
ドキュメントの書き込み ドキュメント 100,000 点あたり $0.18
ドキュメントの削除 ドキュメント 100,000 点あたり $0.02
保存データ $0.18/GiB/月

https://firebase.google.com/docs/firestore/pricing?hl=ja

Cloud Functions

https://cloud.google.com/functions/docs?hl=ja

Cloud functions は軽量なコンピューティングで、サーバ環境を用意せずにアプリからリクエストしたときに即座に応答する仕組みです。

Cloud 上でスタンドアロンの関数を作成することで実行でき、同じようなサービスに「AWS Lambda」があります。

料金は月間 200万回以内は無料で、それ以降は 100万回ごとに $0.40 料金が発生します。(2020/08時点)

https://cloud.google.com/functions/pricing?hl=ja

Cloud Storage

Cloud Storage は、アプリで利用する画像や動画などのコンテンツを保管するクラウドサービスです。

安全性と品質の高いネットワークで Firebase アプリでのファイルのアップロード・ダウンロードができます。

無料枠

リソース 1 か月あたりの無料使用量上限
Standard Storage 5 GB(期間合計)
クラス A オペレーション 5,000
クラス B オペレーション 50,000
ネットワーク(下り) 1 GB、北米から各 GCP 宛て下り(外向き)ネットワーク(オーストラリアと中国を除く)

https://cloud.google.com/storage/pricing?hl=ja

クラス A, B オペレーション

https://cloud.google.com/storage/pricing?hl=ja#operations-pricing

Firebase Authentication

アプリとサーバでデータ送受信や連携するには「ユーザー ID」の識別が必要で、メール、OAuth 、SNS など様々な認証が利用できます。

アプリ側では、FirebaseUI Auth や Firebase Authentication SDK を利用して認証します。

Firebase Hosting

Firebase Hosting は Webアプリや静的・動的コンテンツなどを、ドメインと紐づけて本番環境とホスティングするサービスです。

Web アプリを高速にデプロイしたり、コンテンツを CDN で配信することができ、SSL にも自動的に発行され安全性・信頼性も高くなっています。

Firebase Cloud Messaging

Firebase Cloud Messaging は、デバイス対して 通知メッセージやデータメッセージを送ることができます。 

※従来の Google Cloud Messaging API は非推奨となっています。

Firebase Admin SDK または FCM サーバー プロトコル を利用して送信します。

Firebase の利用

大量のネットワーク通信が発生し、リアルタイム性を求められると自前のサーバで運用するのは困難です。

Google が用意した SDK と Firebase のプロダクションを利用することでサーバ設定の負担が減り、アプリ開発に集中することができます。

AWS Amplify と機能を比較しながら利用するとよいでしょう。