Firebase AI Logic SDK を使用して Gemini API を使ってみる

このガイドでは、選択したプラットフォーム用の Firebase AI Logic クライアント SDK を使用して、アプリから Gemini API を直接呼び出す方法について説明します。

前提条件

Swift

このガイドは、Xcode を使用して Apple プラットフォーム(iOS など)向けのアプリを開発することに精通していることを前提としています。

開発環境と Apple プラットフォーム アプリが次の要件を満たしていることを確認します。

  • Xcode 26.2 以降
  • アプリが iOS 15 以降または macOS 12 以降を対象としている

Kotlin

このガイドは、Android Studio を使用して Android 向けのアプリを開発することに精通していることを前提としています。

開発環境と Android アプリが次の要件を満たしていることを確認します。

  • Android Studio(最新バージョン)
  • アプリが API レベル 21 以降を対象としている

Java

このガイドは、Android Studio を使用して Android 向けのアプリを開発することに精通していることを前提としています。

開発環境と Android アプリが次の要件を満たしていることを確認します。

  • Android Studio(最新バージョン)
  • アプリが API レベル 21 以降を対象としている

Web

このガイドは、JavaScript を使用したウェブアプリ開発に精通していることを前提としています。このガイドはフレームワークに依存していません。

開発環境とウェブアプリが次の要件を満たしていることを確認します。

  • (省略可)Node.js
  • 最新のウェブブラウザ

Dart

このガイドは、Flutter を使用したアプリ開発に精通していることを前提としています。

開発環境と Flutter アプリが次の要件を満たしていることを確認します。

  • Dart 3.2.0 以降

Unity

このガイドは、Unity を使用したゲーム開発に精通していることを前提としています。

開発環境と Unity ゲームが次の要件を満たしていることを確認します。

  • Unity Editor 2021 LTS 以降

役立つリソースを確認する

Swift

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自の Apple プラットフォーム アプリがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、 Firebase プロジェクトに接続する必要があります。

クイックスタート アプリに移動

動画チュートリアルを視聴する

この動画では、テキスト プロンプトからレシピを生成する AI を活用した実際の献立作成アプリを構築して、Firebase AI Logic を使い始める方法について説明します。

動画内のアプリのコードベースをダウンロードして確認することもできます。

動画のアプリのコードベースを表示する



Kotlin

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自の Android アプリがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、Firebase プロジェクトに 接続する必要があります。

クイックスタート アプリに移動

動画チュートリアルを視聴する

この動画では、テキスト プロンプトからレシピを生成する AI を活用した実際の献立作成アプリを構築して、Firebase AI Logic を使い始める方法について説明します。

動画内のアプリのコードベースをダウンロードして確認することもできます。

動画のアプリのコードベースを表示する



Java

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自の Android アプリがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、Firebase プロジェクトに 接続する必要があります。

クイックスタート アプリに移動

動画チュートリアルを視聴する

この動画では、Firebase AI Logicを使い始める方法について説明します。 テキスト プロンプトからレシピを生成する AI を活用した実際の献立作成アプリを構築します。 *

動画内のアプリのコードベースをダウンロードして確認することもできます。

動画のアプリのコードベースを表示する

* この動画とそのアプリは Kotlin で作成されていますが、Java デベロッパーが 使い始めるための基本を理解するのに役立ちます。 Firebase AI Logic.

Web

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自のウェブアプリがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、Firebase プロジェクトに 接続する必要があります。

クイックスタート アプリに移動

Dart

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自の Flutter アプリがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、Firebase プロジェクトに 接続する必要があります。

クイックスタート アプリに移動

動画チュートリアルを視聴する

この動画では、テキスト プロンプトからレシピを生成する AI を活用した実際の献立作成アプリを構築して、Firebase AI Logic を使い始める方法について説明します。

動画内のアプリのコードベースをダウンロードして確認することもできます。

動画のアプリのコードベースを表示する



Unity

クイックスタート アプリを試す

クイックスタート アプリを使用して、SDK をすばやく試して、さまざまなユースケースの完全な実装を確認できます。独自の Unity ゲームがない場合は、クイックスタート アプリを使用してください。クイックスタート アプリを使用するには、Firebase プロジェクトに 接続する必要があります。

クイックスタート アプリに移動

ステップ 1: Firebase プロジェクトを設定してアプリを接続する

  1. Firebase コンソールにログインし Firebase プロジェクトを選択します。

  2. Firebase コンソールで、[AI サービス] > [AI Logic] に移動します。

  3. [使ってみる] をクリックして、プロジェクトに必要な API とリソースを設定するガイド付きワークフローを起動します。

  4. Gemini API」プロバイダを使用するようにプロジェクトを設定します。

    から始めることをおすすめします。 Gemini Developer APIいつでも 設定できますVertex AI Gemini API (とその課金要件)。

    Gemini Developer API の場合、コンソールで必要な API が有効になり、プロジェクトに Gemini API キーが作成されます。
    この Gemini API キーをアプリのコードベースに追加しないでください 詳細

  5. コンソールのワークフローでプロンプトが表示されたら、画面上の手順に沿ってアプリを登録し、Firebase に接続します。

  6. このガイドの次のステップに進んで、アプリに SDK を追加します。

ステップ 2: SDK を追加する

Firebase プロジェクトを設定し、アプリを Firebase に接続したら (前のステップを参照)、Firebase AI Logic SDK をアプリに追加できます。

Swift

Swift Package Manager を使用して Firebase の依存関係のインストールと管理を行います。

Firebase AI Logic ライブラリを使用すると、Gemini モデルを操作するための API にアクセスできます。このライブラリは、Firebase SDK for Apple プラットフォーム(firebase-ios-sdk)の一部として含まれています。

Firebase をすでに使用している場合は、Firebase パッケージが v12.5.0 以降であることを確認してください。

  1. Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Package Dependencies] の順に移動します。

  2. プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。

    https://github.com/firebase/firebase-ios-sdk
    
  3. 最新の SDK バージョンを選択します。

  4. [FirebaseAILogic] ライブラリを選択します。

上記の作業が完了すると、Xcode は依存関係の解決とバックグラウンドでのダウンロードを自動的に開始します。

Kotlin

Android 用 Firebase AI Logic SDK(firebase-ai)を使用すると、Gemini モデルを操作するための API に アクセスできます。

モジュール(アプリレベル)の Gradle ファイル<project>/<app-module>/build.gradle.kts など)に、Android 用 Firebase AI Logic ライブラリの依存関係を追加します。 ライブラリのバージョニングの制御には、 Firebase Android BoM を使用することをおすすめします。

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:34.12.0"))

  // Add the dependency for the Firebase AI Logic library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
}

Firebase Android BoM を使用すると、 アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

Java

Android 用 Firebase AI Logic SDK(firebase-ai)を使用すると、Gemini モデルを操作するための API に アクセスできます。

モジュール(アプリレベル)の Gradle ファイル<project>/<app-module>/build.gradle.kts など)に、Android 用 Firebase AI Logic ライブラリの依存関係を追加します。 ライブラリのバージョニングの制御には、 Firebase Android BoM を使用することをおすすめします。

Java の場合は、2 つの追加ライブラリを追加する必要があります。

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:34.12.0"))

  // Add the dependency for the Firebase AI Logic library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

Firebase Android BoM を使用すると、 アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

Web

Firebase AI Logic ライブラリを使用すると、Gemini モデルを操作するための API にアクセスできます。このライブラリは、ウェブ用の Firebase JavaScript SDK の一部として含まれています。

  1. npm を使用してウェブ用の Firebase JS SDK をインストールします。

    npm install firebase
    
  2. アプリで Firebase を初期化します。

    import { initializeApp } from "firebase/app";
    
    // TODO(developer) Replace the following with your app's Firebase configuration
    // See: https://firebase.google.com/docs/web/learn-more#config-object
    const firebaseConfig = {
      // ...
    };
    
    // Initialize FirebaseApp
    const firebaseApp = initializeApp(firebaseConfig);
    

Dart

Flutter 用 Firebase AI Logic プラグイン(firebase_ai)を使用すると、Gemini モデルを操作するための API にアクセスできます。

  1. Flutter プロジェクト ディレクトリで、次のコマンドを実行して コア プラグインと Firebase AI Logic プラグインをインストールします。

    flutter pub add firebase_core firebase_ai
    
  2. lib/main.dart ファイルで、Firebase Core プラグイン、 Firebase AI Logic プラグイン、以前に生成した 構成ファイルをインポートします。

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_ai/firebase_ai.dart';
    import 'firebase_options.dart';
    
  3. また、lib/main.dart ファイルで、構成ファイルによってエクスポートされた DefaultFirebaseOptions オブジェクトを使用して Firebase を初期化します。

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. Flutter アプリケーションを再ビルドします。

    flutter run
    

Unity

  1. Firebase Unity SDK をダウンロードし、適切な場所 で SDK を解凍します。

    Firebase Unity SDK はプラットフォーム固有ではありません。

  2. 開いている Unity プロジェクトで、[Assets] > [Import Package] > [Custom Package] を選択します。

  3. 解凍した SDK の中から FirebaseAI パッケージを選択します。

  4. [ Import Unity Package] ウィンドウで [Import] をクリックします。

  5. Firebase コンソールの設定ワークフローに戻り、[Next] をクリックします。

ステップ 3: サービスを初期化してモデル インスタンスを作成する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

Gemini モデルにプロンプトを送信する前に、 選択した API プロバイダのサービスを初期化して GenerativeModel インスタンスを作成します。

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3-flash-preview")

Kotlin


// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-3-flash-preview")

Java


// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-3-flash-preview");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(ai, { model: "gemini-3-flash-preview" });

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-3-flash-preview');

Unity


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-3-flash-preview");

使用している機能によっては、常に GenerativeModel インスタンスを作成しない場合がありますを使用して入出力をストリーミングするには、Gemini Live APILiveModel インスタンスを作成します。

また、このスタートガイドを完了したら、ユースケースとアプリに適したモデルを選択する方法をご確認ください。

ステップ 4: モデルにプロンプト リクエストを送信する

これで、Gemini モデルにプロンプト リクエストを送信する準備が整いました。

generateContent() を使用すると、テキストを含むプロンプトからテキストを生成できます。

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3-flash-preview")

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
let response = try await model.generateContent(prompt)
print(response.text ?? "No text in response.")

Kotlin

Kotlin の場合、この SDK のメソッドは suspend 関数であり、 Coroutine スコープから呼び出す必要があります。

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-3-flash-preview")

// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
val response = model.generateContent(prompt)
print(response.text)

Java

Java の場合、この SDK のメソッドは ListenableFuture を返します。

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-3-flash-preview");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

// Provide a prompt that contains text
Content prompt = new Content.Builder()
    .addText("Write a story about a magic backpack.")
    .build();

// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String resultText = result.getText();
        System.out.println(resultText);
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(ai, { model: "gemini-3-flash-preview" });

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const prompt = "Write a story about a magic backpack."

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(prompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

run();

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-3-flash-preview');

// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];

// To generate text output, call generateContent with the text input
final response = await model.generateContent(prompt);
print(response.text);

Unity


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-3-flash-preview");

// Provide a prompt that contains text
var prompt = "Write a story about a magic backpack.";

// To generate text output, call GenerateContentAsync with the text input
var response = await model.GenerateContentAsync(prompt);
UnityEngine.Debug.Log(response.Text ?? "No text in response.");

Google アシスタントの機能

サポートされているモデルの詳細

さまざまなユースケースで利用できる モデル割り当て料金について説明します。

その他の機能を試す

コンテンツ生成を制御する方法を学ぶ

  • プロンプト設計( ベスト プラクティス、戦略、プロンプトの例など )について説明します。
  • モデル パラメータを構成します。たとえば、 Temperature や最大出力トークンなどです。
  • 安全性設定を使用して、 有害とみなされる可能性のあるレスポンスを取得する可能性を調整します。
Google AI Studio を使用して、プロンプトとモデル構成を試したり、 生成されたコード スニペットを取得したりすることもできます Google AI Studio


フィードバックを送信する Firebase AI Logicの使用に関する