northpaddyのブログ

日々学んだプログラミングについてアウトプットしていきます

FareBaseについてまとめてみた

概要

現在Flutterでモバイルアプリケーションの勉強を行っているのですが
バックエンドの機能に「FareBase」を使って実装している記事を多く見かけます
では「FareBase」とは何なのか自分なりに調べてみたことをまとめてみます

公式サイト

FareBaseとは

Firebaseとは Google が提供しているモバイルおよび Web アプリケーションの
バックエンドサービス機能を提供するクラウドサービスです。

英語の頭文字をとってMBaaS(Mobile Backend as a Service)と呼ばれています
BaaSとも呼ばれています

「Firebase」はアプリ開発者向けのサービスで、
バックエンドの処理を代行することで開発にかかる時間・手間の省略が可能で、コスト節約にもつながっているそうです。

Firebaseの機能

Firebase Realtime Database

「Firebase Realtime Database」の最大の特長と言えるのが、リアルタイムでデータ同期ができる点
データはJSONフォーマットで保存されます
「Firebase Realtime Database」はクラウドホスト型 NoSQLデータベースで、
ユーザー同士でデータをリアルタイムで保存・同期ができる優れた機能で、
編集したデータはクラウドに保存され、
数ミリ秒で各端末に同期されるため、ユーザー同士はリアルタイムでの共同作業が可能になります
また、オフラインに対応しており、オフライン時にデータをキャッシュしてオンラインになった時に自動的にデータを同期してくれます

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 は「認証」という意味で
「Firebase Authentication」はユーザーの初期登録や認証を簡単に実装できる機能です
Google 以外のSNS認証では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 を使って公開することもできます

Firebase Crashlytics

「Firebase Crashlytics」は、AndroidiOS用のクラッシュ分析機能
リアルタイムでアプリのクラッシュ分析を行ってくれる機能で、
クラッシュがユーザーに与える影響の測定やクラッシュの原因となっているコードを特定してくれます
この機能を使えば「Firebase」がクラッシュ状況をリアルタイムで教えてくれる

Firebase向けGoogleアナリティクス

「Firebase」には、アクセス解析ツールの「Googleアナリティクス」の機能が組み込まれています
こちらはアプリ用のアクセス解析機能で、アプリの使用状況やユーザーエンゲージメントなどの解析が可能
「Firebase Cloud Messaging」や「Firebase Crash Reporting」といった他の機能や
「BigQuery」や「Googleタグマネージャ」といったGoogleが提供する他のサービスとの統合もできます

まとめ

Firebaseを使う事でバックエンドの処理をFirebaseに任せる事でアプリの開発は捗ります。
しかし、あまりに簡単なのでバックエンドの記述を自分で行えないと言うのも事実です。
初学者にはありがたい事ですが実力が身につくかと言われれば疑問なところです。
必要に応じて使っていければいいのかなと言う見解です。