昨今はどのデベロッパーカンファレンスも生成 AI 関連のアナウンスが多いですが、Firebase も同様に数々のアップデートを提供しています。昨年には Vertex AI in Firebase という呼称で Google Cloud の Vertex AI を Firebase 経由でクライアントからダイレクトに呼び出せる SDK が公開されました。また、エージェント開発などサーバー側で構築できるオープンソースの Genkit も公開されました。
今回は Google I/O’25で新たに発表された Firebase AI のクライアント向け SDK である「Firebase AI Logic」について紹介します。詳細は後述しますが、これの一番の嬉しいポイントは「クライアント言語のみで商用レベルの生成アプリが開発できること」です。私は Flutter/Dart が好きなのですが、Dart 言語で商用レベルのアプリを開発できるのは言語のスイッチングが必要なく嬉しいことです。もちろんクライアント SDK は Dart だけではなく、Swift, Kotlin&Java, JavaScript, Unity がサポートしており、これらの言語のみで生成 AI アプリ開発が可能です(Node.js や Python などを書く必要はありません)。
そんな Firebase AI Logic ですが、Genkit とのユースケースの違いや名称の変更経緯など若干ややこしい部分もありますので、本記事の前半で背景情報について解説し後半はサンプルアプリや商用レベルのチェックリストについて紹介します。※本記事では Dart SDK に特化した内容となっている点にご容赦ください。
端的に言うと「クライアント SDK を使って Gemini API を叩き、生成 AI アプリを素早く実装できるサービス」です。また、App Check が統合された Proxy サーバーを持っており、「セキュリティレベルの高い商用アプリでの公開も想定」されています。公式ドキュメントは以下です。
Gemini APIを利用する2つの方法
Firebase AI Logic では Gemini API を2つの方法から利用できます。Gemini API キーを使って Gemini モデルを利用する「Gemini Developer API」と Vertex AI 経由で Gemini モデルを利用する「Vertex AI Gemini API」です。
Gemini Developer API
- Gemini API キーを使うが自動的に発行されサーバーに管理されるため、開発者が意識する必要もなく、クライアントコードに記載する必要もない(コードに埋め込むのはアンチパターン)
- Gemini のスタンダードモデルのみ利用可能
- Firebase の Spark プラン(Free tier)での利用が可能で無料で開発できる
- もちろん無料枠の範囲内で
- もしすでに Blaze プランで Gemini Developer API を利用した場合は、API 料金が発生する点に注意
Vertex AI Gemini API
- Firebase の Blaze プラン(Paid tier)でのみ利用可能
- Vertex AI 上の Gemini モデルをコールする
- Gemini のスタンダードモデル以外に試験用モデルも利用可能
- Gemini Developer API に比べて使えるモデルも多い
- 例えば「Gemini 2.0 Flash‑Live」モデルは Gemini Developer API では利用できない
Gemini Developer API は Firebase プロジェクトの無料プランではじめられる手軽さがありますが、利用できるのはスタンダードな Gemini モデルのみです。一方、Vertex AI Gemini API は多様な Gemini モデルを利用できますが、有料プラン加入が必須という違いです。
シームレスなAPIの切り替え
上記の2つの方法をコード1つでシームレスに API を切り替えられる点も AI Logic の強みです。以下は Dart のコード例ですが、FirebaseAI インスタンスの googleAI()
と vertexAI()
の1箇所のみの変更で切り替えができます。
import 'package:firebase_ai/firebase_ai.dart';
final model = FirebaseAI.googleAI().generativeModel(
model: 'gemini-2.0-flash',
);
final model = FirebaseAI.vertexAI().generativeModel(
model: 'gemini-2.0-flash',
);
prompt = 'What is Flutter?';
final response = model.generateContent([Content.text(prompt)]);
print(response.text)
まずは無料で初められる Gemini Developer API を使ってプロトタイプを開発し、検証が完了したら Vertex AI Gemini API に変更するという使い方が想定されていると思います。
個人的にはすべての Firebase プロジェクトを結局 Blaze プランにしてしまうので、最初から Vertex AI Gemini API を使うことが多いですが、はじめて Firebase を使う開発者や研修や勉強会などで紹介するときには便利だと思います。
Firebase App Check 統合
AI Logic は App Check と標準で統合されており、クライアントから呼び出される Gemini API を保護するプロキシゲートウェイが備わっています。App Check 自体の説明は割愛しますが、正規のアプリやデバイスから送信されたリクエスト以外は受け付けないように検証ができ、Bot やスクリプト経由での不正なリクエストを弾くことができます。App Check については公式ドキュメントと以下の記事などが参考になると思います。
“商用レベル”での生成 AI アプリ開発が可能という点は、主にこの App Check 部分に起因していますので、一般公開する場合はかならず有効化・適用してアプリを保護しましょう。
Firebase で生成 AI アプリを開発するもう1つの方法として Genkit とのユースケースを比較します。Genkit は、AI Logic の兄弟のような位置づけになっており、AI Logic が Client、GenKit が Server という位置づけになっています。
Firebase AI LogicとGenkitの位置づけ
最大の違いは、Firebase AI Logic はクライアント言語で完結できる強みに対し、Genkit では Node.js(TypeScript)での開発が必要(Python と Go もプレビュー版で対応)でありバックエンドの知識も必要とします。AI Logic はお手軽ですが、RAG や AI エージェントなど外部ツールやデータベースと連携する AI アプリケーションの構築はできませんので、そういったケースでは Genkit が選択肢にあがります。ちなみに tools(Function Calling)については AI Logic(クライアントの関数を呼び出す形)で実現できます。以下に簡単ですが比較表を記載します。
特徴 | Firebase AI Logic | Genkit |
---|---|---|
ユースケース | クライアントアプリ完結のAI実装 | 複雑なAIフローの構築 |
開発方法 | クライアントSDK | バックエンドフレームワーク |
ターゲット | フロントエンドエンジニア | AI機能実装、バックエンド開発経験あるエンジニア |
利用モデル | Gemini Developer API, Vertex AI Gemini API | 任意のLLM(Gemini, PaLMなど)、プラグイン経由 |
デプロイ先 | クライアントアプリ内(SDK) | Cloud Run functions, Cloud Run等 |
料金体系 | 利用モデルに依存(無料枠あり、従量課金) | 利用モデル+バックエンド費用(Cloud Run等) |
複雑なAIロジック | 不向き | 得意(RAG、エージェント等) |
MLOpsサポート | モニタリング機能 | モニタリング・トレース機能 |
Google I/O’25の前後で Dart パッケージの見直しがされましたので、Before・After を中心に整理します。先に結論ですが、firebase_ai
という呼称で新しく pub.dev に公開されていますのでこちらを使えば良いです。
上記については FlutterFire のメンテナーに確認し、以下のコメントをいただきました。
we recommend developers to pick up with firebase_ai or migrate to firebase_ai.
https://github.com/firebase/flutterfire/discussions/17396#discussioncomment-13332022
Google I/O’25 前後でのパッケージ比較
まず、わかりやすい事実として Firebase AI Logic は Vertex AI in Firebase のリネーム版であり、firebase_vertexai
に置き換わるという点が明記されています。
Firebase AI Logic was formerly called “Vertex AI in Firebase” with the plugin firebase_vertexai.
https://firebase.google.com/docs/flutter/setup?platform=ios#available-plugins
Firebase AI Logic の登場前は Flutter/Dart で簡単に Gemini を試すパッケージとして google_generative_ai がありましたが、こちらは Deprecated となりました。firebase_vertexai も前述の通りリネームされ、今は既存開発者の実装を壊さないように維持されている程度でマイグレーションが推奨されています。マイグレーションガイド もドキュメントに記載がありますので、firebase_vertexai
を利用している方は適宜対応すると良いでしょう。
以上を踏まえて、pub.dev に公開されている Google I/O’25での Before/After をまとめると以下です。
Before
-
google_generative_ai
- Gemini API キー をアプリコードに埋め込む形で簡単に利用できる Google Developer API の SDK。最もお手軽に Gemini モデルを利用できるが API キーを埋め込むため商用利用は非推奨。
-
firebase_vertexai
- Vertex AI を Firebase 経由でクライアントから呼びだせる SDK。App Check 対応されているため商用利用にも対応。
After
- google_generative_ai
-
firebase_vertexai
- Discontinued。すでに利用している方向けに残してある程度で、マイグレーション推奨。新規開発では非推奨。
-
firebase_ai (new)
- Firebase AI Logic の公式クライアント SDK。 Gemini Developer API と Vertex AI Gemini API の両方を搭載。
あくまでイメージの話で、AI Logic ではどちらも Firebase 経由のアクセスになるので厳密には違うという前提ですが、Gemini Developer API と Vertex AI Gemini API を1つのパッケージで使うことができるという面で言えば、firebase_ai
は google_generative_ai
と firebase_vertexai
を統合したような構造に近いです。プロトタイプ版と商用版が1つにまとまったことで、より開発者フレンドリーな形に収まったと認識しています。以上より、冒頭述べた firebase_ai
を今後も使っていくというのが今後の形となります。
firebase_ai
パッケージの実態
以下のプルリクエストを見ていただくとわかりますが、基本実装は VertexAI(firebase_vertexai
)のソースコードコピーがベースとなっています。
Exception など VertexAI
表記の部分を FirebaseAI
に置換し、Gemini Developer API でも使えるように手を加えたような実装になっています。
Flutter/Dart のサンプルアプリは以下の FlutterFire パッケージの example
から試せます。
画面下部のナビゲーションバーから各機能のサンプルページに遷移できます。また、右上のトグルから GoogleAI(Gemini Developer API)と Vertex AI(Vertex AI Gemini API)を切り替えることができます。確認のために、Vertex AI を選択した状態で Spark プラン(Free tier)の Firebase プロジェクトで実行しようとするとエラーになることも確認できます。
上記のサンプルですが、README が整っていなかったため、簡単に実行方法を以下に記載します。
実行手順
- GitHub から flutterfire リポジトリ をクローン
-
flutter pub get
でパッケージインストール -
flutterfire configure
コマンドで Firebase プロジェクトを新規作成-
flutterfire
コマンドが通らない場合は Flutter アプリに Firebase を追加する を参照し先にセットアップを済ませる - 作成するアプリ(プラットフォーム)はお好きなものを選択してください
- Spark でも Blaze プランでもどちらでもお好きな方を選択してください
-
-
Firebase AI Logic にて「使ってみる」ボタンを押下
- Gemini Developer API か Vertex AI Gemini API の使いたい API を有効化(Spark プランは前者のみ)
- 「有効にする」ボタン押下で API 有効化。裏で Gemini Developer API キーも自動で発行されます。発行したキーは Gooogle Cloud コンソールからも確認できますが AI Logic では開発者が触ることはないです。
-
App Check にて「使ってみる」ボタン押下
- 実行したいプラットフォームでフィンガープリントなどを追加
-
FirebaseAuthentication にて「使ってみる」ボタン押下。「ログイン方法」から「匿名プロバイダ」を追加
- サンプルアプリ内部で
signInAnonymously()
を使用しているため
- サンプルアプリ内部で
-
flutter run
で実行- 上記のステップが正しく完了していればアプリが起動できます
Vertex AI を使って Flutter, Firebase で Agentic アプリを作る紹介動画です。かなりわかりやすくかつ面白いのでおすすめです。動画の紹介では Vertex AI in Firebase(firebase_vertexai
)が使われていますが、そっくり Firebase AI Logic と置き換えて問題ありません。
内容は Gemini の Tools(Function calling)を使って、自然言語でアプリのテーマを変更したり、UI フィードバックをしたりするアプリの開発方法を紹介しています。アプリの全体像は以下となっていて、feedback | Flutter package を使い撮影したスクリーンショットを Gemini のマルチモーダル機能で解釈させ、ユーザーの要求に合わせて Tools の関数をクライアントに返却、クライアントは返却された関数名を照合して動的にアプリ反映という構造です。例えば、ユーザーが「テキストのフォントが見づらいからもう少し大きくして」と要求すると、フォントサイズが動的に大きくなりフィードバックした内容をその場で確認できます。もちろん、あらかじめクライアントで実装した関数(例: setFontFamily
)しか使えませんが、自然言語で UI 反映させるのは見ていて斬新です。
Firebase AI Logic 単体で利用するだけではプロトタイプの域を出ませんが、App Check や Remote Config, Cloud Storage などの Firebase サービスと統合することで商用アプリとしてリリースができます。商用レベルの基準はサービス要件ごとに異なると思いますが、Firebase AI Logic は Firebase サービスと統合することで以下の項目が備わっているという意味で商用アプリと定義しています。
- セキュリティ (Security)
- モニタリング (Monitoring)
- オペレーション (Operation)
- パフォーマンス (Performance)
- ユーザビリティ (Usability)
- コスト効率 (Cost Efficiency)
- 法規制とコンプライアンス (Legal & Compliance)
以下は、プロダクション環境で提供する場合のチェックリストです。
すべては紹介できませんが、主に以下の点がうまく Firebase 統合されていて良いなと思いました。Rate Limit の部分は単機能ですが、生成 AI アプリとしては必須の機能もカバーされていたので紹介です。
- App Check で不正なクライアントからのリクエストをブロック(最優先)
- Remote Config でサーバー経由でのプロンプトや生成 AI モデルの動的変更
- モニタリング機能の搭載で Firebase コンソールから塩雨量やコストを把握
- Rate Limit でユーザー単位でのトークン使用量を制限・調整
今回の執筆に当たって思い出しましたが、リアルタイム更新可能な Remote Config が 2023年にリリースされた ので即時反映できてラクですね。
remoteConfig.onConfigUpdated.listen((event) async {
await remoteConfig.activate();
});
Firebase AI Logic はクライアントだけで完結できる手軽さの反面、モバイルアプリとしてリリース後はプロンプトのチューニングやモデルの性能評価など細かいイテレーションを回すことが困難でしたが、リアルタイム Remote Config ではその課題も補完されており、お手軽さを維持したまま他の Firebase サービス統合で実運用も可能にする良い塩梅だと思いました。それをするくらいなら Genkit や VertexAI で Cloud Run にデプロイする、という気持ちもわからなくはないので、この辺りは好みかと思います。
Firebase AI Logic SDK は、クライアントサイドのみで商用レベルの生成 AI アプリを素早く開発できる点が最大の特徴です。Dart/Flutter をはじめ、主要なクライアント言語に対応しており、Gemini Developer API(無料枠あり)と Vertex AI Gemini API(有料・多機能)をシームレスに切り替えて利用できます。
また、App Check や Remote Config、Rate Limit など、商用運用に必要なセキュリティ・運用機能が標準で統合されているため、従来の「お手軽さ」と「実運用レベル」の両立が可能になりました。Dart のクライアント SDK では従来の google_generative_ai
や firebase_vertexai
から firebase_ai
への移行が推奨されており、今後はこの SDK を使うのがベストプラクティスとなります。
一方で、RAG や複雑な AI フロー、バックエンド連携が必要な場合は Genkit などサーバーサイドの選択肢も検討が必要です。Vertex AI で提供されている機能もかなり限定的に絞られているため、使いやすさと複雑な機能の実装はトレードオフです。アプリケーション要件や規模に応じて最適な構成を選択しつつ、Firebase AI Logic の強みを活かした開発を進めていきましょう。
本記事や公式ドキュメントを束ねた NotebookLM は こちら です。
Views: 0