firebase-ai-logic-basics について
Firebase AI Logic を使い、クライアント SDK からモバイルや Web アプリに Gemini の機能を加える開発者向けガイドです。専用バックエンドなしでの生成、マルチモーダル入力、音声、各対応プラットフォームの設定を扱います。
主な機能
- 01テキストとマルチモーダル生成
- 02複数ターンのチャットとストリーミング
- 03クライアント側のテキスト読み上げ
- 04画像生成と Google Search によるグラウンディング
- 05構造化 JSON 出力
- 06オンデバイスとクラウドのハイブリッド推論
活用シーン
- 01アプリへの Gemini 生成機能の追加
- 02画像、音声、動画、PDF の分析
- 03クライアントデバイスでの音声ストリーミング生成
- 04指定した JSON スキーマでの応答
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ firebase/ agent-skills --skill firebase-ai-logic-basicsインストール後、Claude Code で/firebase-ai-logic-basicsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/flutter_setup.mdios_setup.mdtts_generation.mdusage_patterns_android.mdusage_patterns_web.md詳細
Firebase AI Logic の基本
概要
Firebase AI Logic は Firebase の製品で、クライアント側 SDK を使用して、開発者がモバイルアプリやウェブアプリに生成 AI を追加できるようにします。Firebase AI Logic を使用すると、開発者が専用のバックエンドを管理する必要なく、アプリから Gemini モデルを直接呼び出せます。Firebase AI Logic は以前、「Vertex AI for Firebase」として知られていました。
以下の 2 つの Gemini API プロバイダーに対応しています。
- Gemini Developer API:プロトタイピングに最適な無料枠があり、本番環境では従量課金制です。
- Agent Platform Gemini API(旧称 Vertex AI):大規模な利用に適しており、エンタープライズグレードの本番環境に対応しています。Blaze 料金プランが必要です。
デフォルトでは Gemini Developer API を使用し、アプリケーションで必要な場合に限り Agent Platform Gemini API(旧称 Vertex AI)を使用してください。
セットアップと初期化
前提条件
- 作業を始める前に、ユーザーが開発に使用するプラットフォームを確認してください。Android、iOS、Web、Flutter のいずれかです。
- 対応していないプラットフォームの場合は、Firebase のドキュメントでアプリケーション向けの AI Logic の設定方法を確認するよう案内してください(次のリンクをユーザーに共有してください:https://firebase.google.com/docs/ai-logic/get-started)。
- 以下の Firebase CLI コマンドは、どのプラットフォームでも
npx経由で実行するため、Node.js 20 以降と npm が必要です。firebase-basicsスキルを使って、これらがインストールされていることを確認し、Firebase CLI にログインしてください。Node.js がない場合や、バージョンが 20 未満の場合は、そのスキルの説明に従ってインストールするようユーザーに依頼してください。たとえばsudo apt-getを使うなどして、自分でシステムパッケージをインストールしないでください。ユーザーの同意なくユーザーのマシンに変更を加えることになるためです。
1. Firebase AI Logic をプロビジョニングする(すべてのプラットフォーム)
Firebase CLI を使用して、Firebase プロジェクトに Firebase AI Logic をプロビジョニングします。
-
firebase.jsonがある Firebase ディレクトリ内にいることを確認します。 -
Firebase CLI コマンドが対象の Firebase プロジェクトに対して実行されることを確認します。このコマンドを実行すると、アクティブなプロジェクトに「current」と表示されます。
npx -y firebase-tools@latest projects:list -
対象プラットフォーム用の Firebase アプリが少なくとも 1 つ、現在の Firebase プロジェクトに登録されていることを確認します。
npx -y firebase-tools@latest apps:list -
Firebase プロジェクトに Firebase AI Logic をプロビジョニングします。
npx -y firebase-tools@latest init ailogicこのコマンドにより、Firebase プロジェクトで Gemini Developer API が有効になります。
警告
重要:Firebase AI Logic のプロビジョニングは必須です アプリですでに Firebase を使用している場合でも、すべてのプラットフォーム(Android、iOS、Web、Flutter)で、サービスをプロビジョニングするために
npx -y firebase-tools@latest init ailogicを必ず実行してください。GoogleService-Info.plist、google-services.json、firebase_options.dartの設定ファイルはクライアントの設定のみを扱い、Firebase AI Logic サービスを有効にはしません。そのため、PERMISSION_DENIEDエラーが発生します。
たとえば Node.js がない、または Firebase CLI にログインしていないなどの理由で、自分で init ailogic を実行できない場合も、実行を省略しないでください。Firebase AI Logic サービスをプロビジョニングするまで、アプリから Gemini モデルへのリクエストは失敗します。このコマンドをプロジェクトディレクトリで実行するようユーザーに伝え、最終的な要約にも記載してください。
npx -y firebase-tools@latest init ailogic
2. アプリに SDK を追加してサービスを初期化する
SDK の依存関係の追加とサービスの初期化の手順は、プラットフォームごとに異なります。コードを記述する前に、初期化コードのリファレンスにある対象プラットフォームのリファレンスを読んでください。
詳しくは、Firebase AI Logic のスタートガイドをご覧ください。
主な機能
警告
重要:最新のモデル名を使用してください:現在サポートされているモデル名は、必ずFirebase AI Logic のモデルに関するドキュメントで確認してください。
gemini-2.0-pro、gemini-2.0-flash、または提供終了となったその他の旧モデルは使用しないでください。
テキストのみの生成
マルチモーダル(テキスト+画像/音声/動画/PDF入力)
Firebase AI Logic を使用すると、アプリから画像ファイルを Gemini モデルに直接解析させることができます。これにより、キャプションの作成、画像に関する質問への回答、オブジェクトの検出、画像の分類などの機能を実現できます。画像以外にも、MIME タイプを指定してインラインデータとして渡すことで、Gemini は音声、動画、PDF などのメディアタイプを解析できます。20 メガバイトを超えるファイルは、インラインデータとして渡すと HTTP 413 エラーが発生する可能性があるため、Cloud Storage for Firebase に保存し、その URL を Gemini Developer API に渡してください。
チャットセッション(複数ターン)
startChat を使用して、履歴を自動的に維持します。
ストリーミングレスポンス
結果が届くたびに部分的な結果を表示してユーザーエクスペリエンスを向上させるには(入力中のような効果)、結果をより速く表示できるよう、generateContent の代わりに generateContentStream を使用してください。
テキスト読み上げ(TTS)生成
カスタムの音声バックエンドを用意せずに、クライアントデバイス上で直接、音声を生成できます。Firebase AI Logic は、専用の Gemini TTS モデルによる音声合成をサポートしています。
- サポート対象モデル:
gemini-3.1-flash-tts-preview - 機能:
SpeechConfig/MultiSpeakerVoiceConfigを使用した、単一話者の音声ペルソナ選択(voiceName)と、複数話者の対話(最大 2 人の異なる話者)responseModalitiesを audio に設定して音声を直接レスポンスとして返す- 低遅延再生向けに
generateContentStreamを使用した音声レスポンスのストリーミング - 音声ディレクティブ(
[Audio Profile: ...]、[Scene: ...]、[Director's Note: ...])と感情タグ([whispers]、[laughs]、[slowly]) - 24 kHz 16 ビット線形 PCM(
audio/l16)または WAV コンテナ形式(audio/x-wav)のクライアント側でのデコードと再生
詳しい実装方法、ストリーミングのパターン、iOS(Swift)、Android(Kotlin)、Web 向けのコピーして使用できるコードスニペットについては、テキスト読み上げ(TTS)生成ガイドをご覧ください。
Nano Banana で画像を生成する
警告
最新の画像モデル名を使用してください: 現在サポートされている画像生成(Nano Banana)モデル名については、必ず Firebase AI Logic モデルのドキュメント を確認してください。
- Blaze 従量課金プランへのアップグレードが必要です。
組み込みの googleSearch ツールによる検索グラウンディング
サポート対象のプラットフォームとフレームワーク
サポート対象のプラットフォームとフレームワークには、Android 向けの Kotlin と Java、iOS 向けの Swift、Web アプリ向けの JavaScript、Flutter 向けの Dart、Unity 向けの C Sharp が含まれます。
高度な機能
構造化出力(JSON)
レスポンスに特定の JSON スキーマを適用します。
オンデバイス AI(ハイブリッド)
ハイブリッド推論では、利用可能な場合はオンデバイスモデルでプロンプトを実行し、そうでない場合はクラウドホスト型モデルにフォールバックします(またはその逆)。利用可能な機能やセットアップ手順はプラットフォームによって異なります。詳しくは、各プラットフォームのガイドへのリンクがあるハイブリッドおよびオンデバイスのドキュメントをご覧ください。
セキュリティと本番環境
Firebase App Check
警告
重要な安全要件: AI Logic を安全に使用するには、アプリで App Check を必ず設定する必要があります。これにより、不正なクライアントが API の割り当てを使用したり、バックエンドリソースにアクセスしたりすることを防げます。
設定手順については、Firebase AI Logic の App Checkをご覧ください。各プラットフォームではそれぞれ異なるアテステーションプロバイダーを使用するため、対象プラットフォームの手順に従ってください。
ローカル開発と CI/CD のための App Check デバッグトークン
App Check の証明プロバイダー(Play Integrity や DeviceCheck など)はエミュレーター、シミュレーター、CI 環境を拒否するため、開発とテストでは標準の証明を回避するために App Check デバッグトークンを使用する必要があります。
警告
重大:デバッグトークンをハードコードしたり、コミットしたりしないでください App Check デバッグトークンを使うと、クライアントは正規のデバイスを使わずに証明を回避し、バックエンドのリソースにアクセスできます。個人情報として扱ってください。デバッグトークンをバージョン管理にコミットしたり、未加工のトークン文字列をクライアントコード(Web、Android、iOS、Flutter)にハードコードしたりしないでください。必ずローカル環境変数、Git の管理対象外にしたローカル設定、または CI のシークレットを使って渡してください。トークンが漏えいした場合は、Firebase Console ですぐに取り消してください。
ローカル開発(自動生成)
- コードの App Check プロバイダーがデバッグファクトリーを使うように設定します。API はプラットフォーム固有です。上記のプラットフォームリファレンスにある App Check のセクション、またはリンク先の App Check ドキュメントを参照してください。
- エミュレーターまたは localhost でアプリを実行します。
- 実行時デバッガーコンソールまたは Logcat のログで、生成された UUID を確認します。
- 例:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
- 例:
- Firebase Console の Security > App Check > Apps > Manage debug tokens で、このトークンを登録します。
💡 ヒント(デバッグトークンの頻繁な再生成を防ぐ): シミュレーターやエミュレーターのリセット、新規インストール、ブラウザーのデータ消去によって SDK が新しいデバッグトークンを生成し、再登録が必要になる場合があります。ハードコードせずに安定したデバッグトークンを維持する方法については、プラットフォームリファレンスの App Check のセクションを参照してください。
CI/CD パイプライン(事前プロビジョニング)
- Firebase Console の Security > App Check > Apps > Manage debug tokens で、新しいデバッグトークンを生成して登録します。
- CI システムの暗号化されたシークレットとして、このトークン文字列を追加します(例:
APP_CHECK_DEBUG_TOKEN)。 - テスト実行時に、このシークレットを環境変数として SDK に渡すようビルドを設定します。
Firebase Remote Config
モデル名(特定のモデルバージョン文字列など)をハードコードする必要はありません。Firebase Remote Config を使うと、クライアントコードを新たにデプロイせずにモデルバージョンを動的に更新できます。モデル名をリモートで変更するを参照してください。
初期化コードのリファレンス
-
Android(Kotlin)
- Gemini API プロバイダー:Gemini Developer API
- リファレンス:usage_patterns_android.md
-
iOS(Swift)
- Gemini API プロバイダー:Gemini Developer API
- リファレンス:ios_setup.md
-
Web Modular API
- Gemini API プロバイダー:Gemini Developer API
- リファレンス:usage_patterns_web.md
-
Flutter(Dart)
- Gemini API プロバイダー:Gemini Developer API
- リファレンス:flutter_setup.md
警告
重大:現在のモデル名を使用してください: 現在サポートされているモデル名は、必ずFirebase AI Logic モデルのドキュメントで確認してください。
gemini-2.0-pro、gemini-2.0-flash、または提供終了したその他の旧モデルは使用しないでください。
リファレンス
Android(Kotlin)SDK の使用パターン iOS SDK のコード例と使用パターン Web SDK のセットアップ、コード例、使用パターン