・アプリ開発を検討しているけど、Firebaseを使うかどうか迷っている
・Firebaseで何ができるのかが良くわからない

このような悩みを解決します。
この記事では、Firebaseの特徴やアプリ開発でFirebaseを使うと実現できることを解説します。
Firebaseは、スマホアプリ・Webアプリには欠かせないバックエンドを提供するプラットフォームです。
アプリ開発においてFirebaseを使うことのメリット・デメリットについても解説します。
Firebaseを使うかどうか検討されている方は、ぜひ最後までお読みください。
Firebaseとは、Googleが提供するmBaaSです。

FirebaseはGoogleが提供するmBaaSで、GCP(Google Cloud Platform)の一つです。
mBaaSはクラウドサービスの一つで、スマホアプリやWebアプリに必要なバックエンド(サーバーサイド)機能を提供します。
mBaaSはmobile Backend as a Service(モバイルバックエンドアズアサービス)の略です。
Firebaseは、特にスマホアプリ開発で必要な機能を簡単に実装できるパッケージを提供しているサービスです。
無料プランと有料プランがあり、小規模のアプリなら無料範囲内でも十分に活用できます。
通常アプリ開発では、サーバーサイドのプログラムを自分で開発しなければいけません。
Firebaseを利用すると開発にかかる時間とコスト、サーバーにかかる費用などを削減できます。
Firebaseを使うと実現できること
スマホアプリやWebアプリの開発でFirebaseを使うと、様々な機能が実現可能です。
今回は、その中でも主な機能を3つ紹介します。
- データベース機能
- アクセス解析(アナリティクス)機能
- ユーザー認証機能
順番に解説します。

データベース機能
Firebaseで使えるデータベースの機能には、Cloud Firestoreがあります。
アプリケーション開発には、データベースの存在が欠かせません。
例えばアプリでログインするユーザーのデータや商品のデータなどは、すべてデータベースで管理します。
Cloud Firestoreを用いると、アプリ開発に必要なデータベース機能を素早く実装できます。
Cloud Firestoreはリアルタイムでデータを受信でき、データの変更が高速で反映されるのが特徴です。
またCloud Firestore はNoSQLのデータベースです。
NoSQLデータベースとは、リレーショナルデータベース(RDB)以外のデータベースを指します。
RDBはデータをエクセルのような表形式で管理しますが、NoSQLではそのようには管理しません。
NoSQLデータベースはRDBに比べて処理速度が早く、柔軟性が高い特徴があります。

アクセス解析(アナリティクス)機能
Firebaseでは、アプリのアクセス解析ツールが無料で無制限に利用が可能です。
Google Analytics for Firebase という解析ツールはアプリの利用状況を自動で収集してくれます。
最大で500種類のアプリ内でのイベントに関するレポートの収集が可能です。
収集されたデータは、Firebaseのコンソール画面でレポートとして閲覧できます。
Google Analytics for Firebaseを使うと、ユーザーのアプリ内の動向を解析できます。
例えば、解析で得られるアプリ内での購入や通知への反応数などは、マーケティングに必要なデータです。
得られたデータを解析すれば、目的に応じたアプリの最適化が実現可能になるでしょう。
ユーザー認証機能
スマホアプリを実装する上で、新規登録やログインなどのユーザー認証機能を用意することは重要です。
通常ユーザー認証機能を実装するとなると、ある程度多くの工数が必要になります。
またアプリのユーザー認証機能は、高い安全性が要求される機能です。
Firebase Authentication を利用すると、安全性が高いユーザー登録やログイン機能が簡単に導入できます。
Firebase Authentication は以下のように様々な方法でユーザー認証機能をサポートしています。
- メールアドレス+パスワード
- 電話認証
- Googleアカウント
- Facebookアカウント
- Twitterアカウント
- GitHubアカウント
Googleアカウント等でユーザー認証ができると、ユーザー登録のハードルが下がり新規ユーザー獲得につながるでしょう。
GitHubは主にエンジニアがプログラムの開発中に使うソースコード管理ツールです。
想定ユーザーがエンジニアでなければ、GitHubアカウントを考慮する必要はないでしょう。
Firebaseを使うメリット
アプリ開発にFirebaseを使うメリットは、主に次の3つです。
- サーバーにかかる費用を減らせる
- アプリ開発にかかる時間とコストが削減できる
- アプリ開発に必要な機能が豊富に用意されている
順番に解説します。
サーバーにかかる費用を減らせる
Firebaseは、無料プランの範囲ならサーバー費用が無料でアプリの運用が可能です。
データベースなどサーバーサイドのプログラムが必要なアプリでは、通常はサーバーの契約が必要です。
有料プランの場合でも従量課金(通信量に応じた金額)のため、通信量次第では安く済ませられます。
小規模のアプリから始める場合は、Firebaseを利用するとサーバー費用を大幅にカットすることが可能です。
アプリの規模が大きくなり無料枠で収まらなくなった場合も、有料プランに移行すればFirebaseを使い続けられます。
アプリ開発にかかる時間とコストが削減できる
通常アプリ開発では、アプリ側(フロントエンド)の開発とは別にバックエンド側のプログラムを開発する必要があります。
『バックエンド』とは、ユーザーに見えない部分の処理のことで、例えばサーバーやデータベース等のデータ処理のことを指します。
Firebaseを利用すると既にパッケージとしてスマホアプリに必要な機能が利用できます。
そのためバックエンドのプログラムを開発する必要がありません。
またプログラム開発には、開発会社との契約やアプリ開発が可能なエンジニアを雇う必要があります。
Firebaseを用いると開発にかかる工数が減り、その分の費用と時間を節約することが可能です。
できるだけ早くアプリをローンチしたいと考えているなら、Firebaseを用いたアプリ開発も検討しましょう。
アプリ開発に必要な機能が豊富に用意されている
Firebaseは、先ほど紹介した機能以外にもスマホアプリやWebアプリに必要な機能が豊富に用意されています。
例えば写真や動画などのファイルを保存したり参照したりするためのストレージ機能もあり、プッシュ通知の配信も可能です。
またアプリに必要な機能を全てFirebaseで実装すれば、機能同士が干渉することもありません。
実現したい機能を一通り洗い出し、一つ一つの機能がFirebaseで実現可能かをエンジニアに調べてもらうのが良いでしょう。
Firebaseを使うデメリット
Firebaseを使うときのデメリットは、主に次の2つです。
- 複雑なデータ処理に向かない
- 追加機能が欲しい場合に対応できないことがある
順番に解説します。
複雑なデータ処理に向かない
先ほども紹介したように、Firebaseのデータベースはリレーショナルデータベース(RDB)ではなくNoSQLです。
NoSQLデータベースは単純なデータ処理は問題ありませんが、複雑なデータの処理には向いていません。
NoSQLはSQLを使用しないため、SQLで行えるような複雑な条件での検索が難しいです。
その代わり、大容量のデータでも簡単な条件での検索や登録は高速に処理できます。
アプリで実現したい機能がCloud Firestoreで実装可能か、事前に調査してもらうのがおすすめです。
追加機能が欲しい場合に対応できないことがある
Firebaseで提供される機能は数多くありますが、実装したい機能をFirebaseだけでは対応できない場合があります。
またバックエンドを全てFirebaseで実装したアプリで、あとから機能の追加を検討することも多いです。
もし追加機能をFirebaseで実現できないなら、別のバックエンドプログラムを自分で作るしかありません。
はじめから規模が大きなアプリ開発を考えている場合は、Firebaseを使わずに実装する方法も検討しましょう。
またデータベースは一般的にはNoSQLよりもRDBの方が使用されることが多いです。
そのため多くのエンジニアはRDBを使えますが、NoSQLのデータベースを扱ったことがないエンジニアも珍しくありません。
Firebaseを用いたアプリ開発をするなら、Firebaseに精通した開発会社やエンジニアに依頼するのが良いでしょう。
まとめ
今回は、Firebaseの特徴やFirebaseを使ったアプリ開発でできることを解説しました。
FirebaseはスマホアプリやWebアプリ開発を簡単に実現できるmBaaSの一つです。
アプリに必要なバックエンドのサービスを数多く提供しています。
Firebaseを使うメリットは多く、コストカットや実装までの時間短縮などが挙げられます。
特にスモールスタートをする場合は、開発開始から短期間でアプリをリリースすることも可能です。
FirebaseはNoSQLを採用しているため、複雑なデータ処理が要求されるアプリには不向きです。
また機能追加する際にFirebaseだけでは実現できない可能性もあります。
はじめから規模の大きくなることが見込まれる場合は、Firebaseだけでバックエンドを実装するのは難しいでしょう。

ONETECHのFirebaseでのアプリ開発実績
ノーコードで作成!サウンドノベルゲームメーカーアプリ追加開発 プログラミング経験がなくてもオリジナルのサウンドノベルのゲームを作成できるスマホアプリの追加開発を行いました。 メインの技術は、node.jsを利用して開発しました RedisとFirebaseのデータベースで構築しているシステムを追加で機能を実装しました。