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 ディレクトリ(
firebase.jsonがあるディレクトリ)にいることを確認します。 -
意図した Firebase プロジェクトに対して Firebase CLI コマンドを実行していることを確認します。このコマンドを実行すると、アクティブなプロジェクトに「current」と表示されます。
npx -y firebase-tools@latest projects:list -
現在の Firebase プロジェクトに、ターゲットプラットフォームの Firebase App が少なくとも 1 つ登録されていることを確認します。
npx -y firebase-tools@latest apps:list -
Firebase プロジェクトに Firebase AI Logic をプロビジョニングします。
npx -y firebase-tools@latest init ailogicこのコマンドにより、Firebase プロジェクトで Gemini Developer API が有効になります。
[!WARNING] 重要: Firebase AI Logic のプロビジョニングは必須です すべてのプラットフォーム(Android、iOS、Web、または Flutter)において、アプリがすでに Firebase を使用している場合でも、
npx -y firebase-tools@latest init ailogicを実行してサービスをプロビジョニングする必要があります。GoogleService-Info.plist、google-services.json、firebase_options.dartの設定ファイルはクライアント設定のみを処理し、Firebase AI Logic サービスを有効にしないため、PERMISSION_DENIEDエラーが発生します。
自分で init ailogic を実行できない場合(Node.js がない、Firebase CLI にログインしていないなど)でも、スキップしないでください。Firebase AI Logic サービスがプロビジョニングされるまで、アプリの Gemini モデルへのリクエストは失敗します。ユーザーにプロジェクトディレクトリでこのコマンドを実行するように伝え、最終的なサマリーに含めてください。
npx -y firebase-tools@latest init ailogic
2. SDK を追加し、アプリ内でサービスを初期化する
SDK 依存関係の追加とサービスの初期化はプラットフォーム固有です。コードを記述する前に、初期化コードリファレンス にリストされているターゲットプラットフォームのリファレンスを読んでください。
詳細は Firebase AI Logic Getting Started を参照してください。
コア機能
[!WARNING] 重要: 現在のモデル名を使用してください: 常に Firebase AI Logic Models ドキュメント で現在サポートされているモデル名を確認してください。
gemini-2.0-proやgemini-2.0-flashなど、シャットダウンされた古いモデルは使用しないでください。
テキストのみの生成
マルチモーダル(テキスト + 画像/音声/動画/PDF 入力)
Firebase AI Logic を使用すると、Gemini モデルはアプリから直接画像ファイルを分析できます。これにより、キャプションの作成、画像に関する質問への回答、オブジェクトの検出、画像の分類などの機能が可能になります。画像だけでなく、Gemini は音声、動画、PDF などの他のメディアタイプを、インラインデータとして MIME タイプとともに渡すことで分析できます。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 - 機能:
- シングルスピーカーの音声ペルソナ選択(
voiceName)およびSpeechConfig/MultiSpeakerVoiceConfigを使用したマルチスピーカーダイアログ(最大 2 人の異なる話者) responseModalitiesをオーディオに設定した直接オーディオ応答- 低レイテンシ再生のための
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 による画像生成
[!WARNING] 現在の画像モデル名を使用してください: 常に Firebase AI Logic Models ドキュメント で現在サポートされている画像生成(Nano Banana)モデル名を確認してください。
- アップグレードされた Blaze 従量課金制の料金プランが必要です。
組み込みの googleSearch ツールによる検索グラウンディング
サポートされているプラットフォームとフレームワーク
サポートされているプラットフォームとフレームワークには、Android 用 Kotlin と Java、iOS 用 Swift、ウェブアプリ用 JavaScript、Flutter 用 Dart、Unity 用 C Sharp が含まれます。
高度な機能
構造化出力(JSON)
応答に特定の JSON スキーマを適用します。
オンデバイス AI(ハイブリッド)
ハイブリッド推論は、オンデバイスモデルが利用可能な場合はそれでプロンプトを実行し、そうでない場合はクラウドホストモデルにフォールバックします(またはその逆)。可用性とセットアップ手順はプラットフォームによって異なります。詳細は ハイブリッドおよびオンデバイスのドキュメント を参照してください。このドキュメントは各プラットフォームのガイドにリンクしています。
セキュリティと本番環境
Firebase App Check
[!WARNING] 重要な安全要件: AI Logic を安全に使用するには、アプリに App Check を設定する必要があります。これにより、承認されていないクライアントが API 割り当てを使用したり、バックエンドリソースにアクセスしたりするのを防ぎます。
セットアップ手順については、Firebase AI Logic の App Check を参照してください。各プラットフォームは独自のアテステーションプロバイダーを使用するため、ターゲットプラットフォームの手順に従ってください。
ローカル開発および CI/CD 向け App Check デバッグトークン
App Check のアテステーションプロバイダー(Play Integrity や DeviceCheck など)はエミュレーター、シミュレーター、または CI 環境を拒否するため、開発およびテスト中は標準のアテステーションをバイパスするために App Check デバッグトークン を使用する必要があります。
[!WARNING] 重要: デバッグトークンを決してハードコードしたりコミットしたりしないでください App Check デバッグトークンを使用すると、クライアントはアテステーションをバイパスし、本物のデバイスなしでバックエンドリソースにアクセスできます。これらは秘密情報として扱ってください。デバッグトークンをバージョン管理にコミットしたり、クライアントコード(Web、Android、iOS、Flutter)に生のトークン文字列をハードコードしたりしないでください。常にローカル環境変数、gitignore されたローカル設定、または CI シークレットを介して注入してください。トークンが漏洩した場合は、Firebase コンソールですぐに失効させてください。
ローカル開発(自動生成)
- コードの App Check プロバイダーがデバッグファクトリーを使用するように設定します。API はプラットフォーム固有です。プラットフォームリファレンスの App Check セクション、または上記の App Check ドキュメントを参照してください。
- エミュレーター/localhost でアプリを実行します。
- 実行時デバッガーコンソール / Logcat ログで生成された UUID を探します。
- 例:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
- 例:
- Firebase コンソールの セキュリティ > App Check > アプリ > デバッグトークンを管理 でこのトークンを登録します。
💡 ヒント (デバッグトークンの変更を防ぐ): シミュレーターやエミュレーターのリセット、新規インストール、ブラウザデータのクリアにより、SDK が新しいデバッグトークンを生成し、再度登録する必要が生じる場合があります。ハードコードせずに安定したデバッグトークンを維持するには、プラットフォームリファレンスの App Check セクションを参照してください。
CI/CD パイプライン(事前プロビジョニング)
- Firebase コンソールの セキュリティ > App Check > アプリ > デバッグトークンを管理 で新しいデバッグトークンを生成して登録します。
- このトークン文字列を 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 モジュラー API
- Gemini API プロバイダー: Gemini Developer API
- リファレンス: usage_patterns_web.md
-
Flutter (Dart)
- Gemini API プロバイダー: Gemini Developer API
- リファレンス: flutter_setup.md
[!WARNING] 重要: 現在のモデル名を使用してください: 常に Firebase AI Logic Models ドキュメント で現在サポートされているモデル名を確認してください。
gemini-2.0-proやgemini-2.0-flashなど、シャットダウンされた古いモデルは使用しないでください。
リファレンス
Android (Kotlin) SDK usage patterns iOS SDK code examples and usage patterns Web SDK setup, code examples, and usage patterns
Flutter SDK code examples and usage patterns Client-side Text-to-Speech (TTS) generation