• Google Cloudに関する記事
10分で読める

Firebase がアプリ開発の神ツールである理由とは

こんにちは。クラウドエース編集部です。
2024 年 3 月 1 日、Google 渋谷オフィスで開催された「Modern App Summit Tokyo ’24」にて、クラウドエース株式会社 技術本部 鈴木 達也 による「Firebase と生成 AI で変わる中小企業向けアプリ開発」と題する講演を行いました。

本記事では、セッションの内容をベースに、Firebase の概要、Firebase がアプリ開発にとって非常に強力なツールである理由、モダンでミニマムな開発手法とそのアプローチなどを紹介していきたいと思います。
クラウドエース株式会社 技術本部 システム開発統括部 フロントエンド・UI/UX 部 鈴木 達也氏

Firebase の概要や特徴、アプリ開発が飛躍的に簡単になるその仕組みとは

Google Cloud が提供する BaaS(Backend as a Service) サービスである Firebase は、開発者がアプリケーション開発を効率的に行える強力なプラットフォームです。リアルタイムデータベース、認証機能、アナリティクス、ファイルストレージなど、アプリ開発を行う際に必要となる様々な機能やサービスを統合的に提供しているので、開発者はそれらを組み合わせて構築を進めることができ、開発の初期からリリース、運用に至るまでの全プロセスをサポートしてくれます。

また、Firebase はクラウドベースなので、サーバーの設定や管理が不要です。そのため、開発者はアプリの機能開発にフォーカスすることができます。スケーラビリティにも優れていて、ユーザー数の増減に応じたリソース調整等も自動的にやってくれるので、インフラの拡張・縮小について考える必要がありません。

これまで、骨組みからスタートしていたアプリケーション開発が、肉付けだけで完結できるようになった点は Firebase の非常に秀逸な点であり、クラウドリソースの強みであるとも言えます。

実際に、Firebase にどのような機能やサービスがあるのかを、表にまとめましたので、ぜひご参照いただければと思います。
コード数行でアプリケーションに認証機能を実装、リアルタイムでデータを同期、ユーザーログの分析・行動予測など、非常に便利で強力な機能を簡単にアプリケーションに組み込むことができます。

Firebase のサービス一覧

サービス名称 概要
Firebase Authentication ユーザー認証を簡単に実装できるサービス。メール/パスワード、電話番号、Google、Facebook、Twitter、GitHub など、さまざまな認証方法をサポートします。
Cloud Firestore リアルタイムで同期される NoSQL データベース。アプリのデータを効率的に保存、同期、クエリすることができます。
Firebase Realtime Database リアルタイムでのデータ同期を可能にする NoSQL データベース。リアルタイムチャットなど、リアルタイム性が求められるアプリケーションに適しています。
Cloud Storage for Firebase ファイル(画像、動画、その他のコンテンツ)のアップロードとダウンロードを簡単に実行できるサービス。Cloud Storage に基づいて構築されています。
Firebase Hosting 静的ウェブコンテンツ(HTML、CSS、JavaScript など)のホスティングサービス。高速なパフォーマンスと SSL 暗号化が標準で提供されます。
Cloud Functions for Firebase サーバーレスコンピューティング環境を提供し、Cloud Functions を使ってバックエンドロジックを実行できます。
Firebase Analytics アプリの使用状況とユーザー行動を分析するための強力なツール。イベントトラッキングを基にした洞察を提供します。
Firebase Predictions ユーザーの行動を予測するための機械学習モデル。特定のユーザーグループに対してカスタマイズされたエクスペリエンスを提供できます。
Firebase Cloud Messaging (FCM) ウェブ、モバイルプラットフォームへの通知を無料で送信できるサービス。
Firebase Remote Config アプリの振る舞いや外観をリアルタイムで変更するためのキー値ストア。アプリのアップデートを行わずに変更を反映できます。
Firebase Test Lab モバイルアプリのテストを簡単に実行できるテスト環境。さまざまなデバイスやOSバージョンでのアプリの動作をテストできます。
Firebase App Distribution ベータ版アプリをテスターに簡単に配布できるサービス。テストのフィードバックを効率的に収集できます。
Firebase Crashlytics アプリのクラッシュレポートをリアルタイムで提供。原因の特定と修正を迅速に行えます。
Firebase Performance Monitoring アプリのパフォーマンスを監視し、改善点を特定できるツール。

Firebase の料金体系

Firebase の料金プランについても紹介しておきます。
主に無料版である「Spark プラン」と有料版(従量課金)である「Blaze プラン」の 2 種類があり、Spark プランは初期の開発やテスト、小規模なアプリなどの用途に適しています。

Blaze プランにおける主要サービスの課金の仕組みについても簡単にまとめておきます。

サービス名称 料金概要
Firebase Authentication 多くの認証方法は無料ですが、電話認証については無料枠を超えると課金が発生します。
Cloud Firestore ストレージ利用量、データベース読み取り/書き込み/削除の操作に応じて料金が発生します。
Firebase Realtime Database ストレージ利用量とデータベース読み取り/書き込みの操作により料金が発生します。
Firebase Storage ストレージ利用量とネットワーク使用量に応じて課金されます。
Firebase Hosting 提供される無料枠を超えるストレージ利用量とネットワーク使用量に応じて課金されます。
Firebase Functions 実行回数、実行時間、リソース使用量に応じて料金が発生します。外部ネットワークへのアクセスが必要な場合は、追加で課金が発生することがあります。

※詳細な料金計算や、最新情報は Firebase の公式ドキュメント や料金計算ツールを参照することをおすすめします。

Firebase を使用してアプリ開発を行うための 4 つの開発アプローチとは

Firebase は、サービスが豊富である分、具体的な使い方がイメージしにくい点があります。
本セッションでは Firebase を使用することで日々の開発にどのようなメリットがあるのか、4つの具体例を紹介いたしました。

1 つめの開発アプローチは、Firebase Authentication によるスピーディーな認証機能の導入です。Firebase を活用する上で Firebase Authentication は重要な機能の一つです。Firebase Authentication とセキュリティルールを組み合わせることで、他の Firebase のサービスを安全に利用することができる点が強みです。

また、 Firebase Authentication を Identity Platform にアップグレードすることで、幅広い機能を利用することができる点についても触れました。機能例としてブロッキング関数が挙げられています。ブロッキング関数はサインインやサインアップ前に発火するイベントを Cloud Functions for Firebase にデプロイできる機能であり、Google 認証によるサインイン時に Google アカウント情報をブロッキング関数で取得し、対象外のドメインをブロックするなどが可能になります。

2 つ目の開発アプローチは Firestore を使ったサブデータストアです。前提としてお客様が、 Cloud Run を使用した API と Cloud SQL で構築されたデータベースを持つシステム内で、Web アプリケーションのパラメータを自身で管理したいという要望があります。

Firestore をサブデータストアとすることで、システムのデータと分離し、API 開発の手間を減らすことができます。また、Firebase コンソールから Firestore のデータを変更できるため、ユーザー自らデータを更新することも可能です。セッションでは Firebase コンソールからデータを更新するための手順書も用意し、単に Firebase を導入するだけでなく弊社が提供する内製化の支援についても紹介しました。

3 つ目の開発アプローチは Firebase ローカル エミュレータ スイートは開発者体験を向上させるツールです。このサービスを使用することで開発者は Firebase の機能をローカル環境で検証することができます。

Firebase はセキュリティルールや NoSQL データベースの Firestore など、個性的な機能が存在します。初めて Firebase に触れる開発者にとっては少し慎重に扱いたいところですが、Firebase ローカル エミュレータ スイートを使って、実環境に影響を与えることなく検証をしていくことができるので、Firebase での開発のハードルも下がると思います。

4 つ目の開発アプローチは Firebase Extensions を使用したアプリケーション開発です。Firebase Extensions は Firebase が提供するプリパッケージ ソリューションで、様々なユースケースに合わせて事前定義された構成をプログラムを自身の Google Cloud 環境にデプロイすることができます。

AI チャットボットの Firebase Extensions を使用することで、AI チャットボットの開発工数を削減した事例についてもセッションでは紹介しました。Firebase Extensions は 2024 年 3 月 11 日時点でプレリリース版となっているため、本番環境での適用は推奨されませんが、社内での検証や個人学習にお役立ちいただけると思います。

Firebase Extensions を使用した AI チャットボットの詳細は弊社の技術ブログにも掲載されています。

Firebase と PaLM で作るお手軽チャットボット開発入門

Firebase Extensions で作成したチャットボットの AI モデルを PaLM から Gemini に切り替える
Identity Platform のブロッキング関数や Firestore の機能の紹介もしていますので、Firebase でのアプリ開発に興味を持った方は、ぜひご一読ください。

Firebase で生成 AI アプリケーションを爆速開発できる

次に、生成 AI アプリケーション開発のパッケージソリューションの提案についてもご紹介します。

日々様々な検証環境を作成していると、共通して必要なものが見えてきます。例えば、認証機能やホスティング機能は社内でアプリケーションの検証を行う際には必須の機能となります。その機能を Firebase を使って構築し、画面もこちらで準備・展開するというソリューションになります。

このパッケージを導入することで、お客様は自社で注力したい点によりフォーカスを当てることができます。

弊社は、小さな開発プロジェクトから大規模なものまで様々な案件を手掛けてきた実績があります。また、生成 AI やデータの利用に関しても深い知識と経験を持っています。このパッケージを導入することで、これまでの作業で使用していたリソースを節約できます。その結果、お客様が特に力を入れたい分野を強化することが可能になります。

また、私自身がフロントエンドエンジニアであることもあり、UI/UX に対するアプローチも重要だと考えています。従来、機能検証の段階ではコストやスケジュールを考えると UI/UX まで目を向けることは難しいものです。しかし、もし画面や機能があらかじめ用意されていれば、UI/UX の検証を先に進めることができるようになるため、効率的にユーザーにとっての使いやすさを向上させることが可能になると考えています。

パッケージの例として、Vertex AI Search の検証パッケージも紹介いたします。先ほどの認証やホスティング機能に加え、これは Vertex AI Search による検証機能をまとめたものになります。

Vertex AI Search は Google Cloud コンソールから気軽に試すことができますが、社内での展開を考えるとコンソールにアクセスして直接操作できる人数を増やすことは好ましくありません。しかし、そのためにウェブアプリケーションを一から作るのはコストもかかってしまうので、結局導入が難しくなってしまうというお悩みに応えるためのパッケージとなっています。

またこのパッケージは導入するだけで終わらず、拡張していくことを前提としています。通常であれば Vertex AI Search を導入しただけで必要な情報が確実に得られるという訳ではないので、チューニングが求められます。しかし、パッケージの導入によって浮いたコストをチューニングに回すことで、より精度の高い検索アプリを作成することも可能です。

検索データを蓄積し、どのような使われ方をしているのか分析するニーズを優先したいお客様もいると思います。その場合は、検索時に検索データだけでなく様々なメタ情報も保存し、後で BigQuery で分析するという機能拡張を提案することも可能です。Firestore が NoSQL データベースである点を利用し、柔軟にデータを集めることができます。

Firebase を活用した本パッケージはお客様のニーズに応じて自由に拡張・カスタマイズできます。基本的な枠組みがすでにできているため、迅速に導入できる点は大きな利点であり、拡張性を重視した設計となっていることで単なるパッケージ以上の価値も提供できます。SaaS とは異なりお客様自身の Google Cloud プロジェクトにパッケージをデプロイする形となるため、内製化の一歩として Firebase に挑戦するために利用するという使い方にも適しています。

Firebase の弱点と、ミニマムな開発のすゝめ

ここまで Firebase のメリットについて解説してきましたが、全ての開発シナリオにとって Firebase が最適解であるわけではないという点もお伝えしたいと思います。
Firebase はクライアントサイドの開発においては非常に強力ですが、サーバーサイドの動作や構成のカスタマイズに制限があるため、インフラの詳細な管理や、特定のセキュリティポリシーへの適用などが難しいという点や、Firebase のオートスケーリング機能の許容範囲を上回るトラフィックに対するパフォーマンスチューニングが困難であるという弱点があります。

ですので、詳細なインフラの設定・管理や、大規模なトラフィックが想定されるケースでは、Firebase が提供する機能だけでは期待するパフォーマンスを発揮することが難しいと考えられています。その際は Firebase Function や Cloud Run などで Firebase の弱点を補完したり、Google Kubernetes Engine での開発に切り替えるなどを検討するのが良いと思います。

一方で、冒頭でも述べたように、小規模な開発においては Firebase は「非常に強い味方」になってくれます。Firebase を利用することで、一部の機能開発のコストやスケジュールを縮小できることは大きなメリットです。Firebase を活用して最小限の機能から開発していく「ミニマムな開発」も、モダンなアプリケーション開発における第一候補として考えていただきたいと思います。

本セッションでは Firebase の活用例やパッケージ導入による開発支援が紹介させていただきましたが、これによって中小企業様だけでなく、多くの企業が新技術や新規ビジネスをいち早く検証する一つの手段を得ることができると思います。
もちろんクラウドエースでも Firebase 開発のご支援をさせていただいており、小規模から大規模まで様々なニーズに答えることができます。どんなことでも構いませんので、何か気になることがあればぜひお声がけください。

よろしければ 本セッションの登壇資料 を無料配布しておりますので、ぜひお読みいただき、Firebase に興味を持っていただけると嬉しいです。

※Google Cloud、Firebase、Firestore、Vertex AI、は Google LLC の商標です。

この記事を共有する

合わせて読みたい