本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

firebase 13 AI Logicの移行と既定リージョン

目次 · 7項目

Webアプリやスマホアプリから Firebase AI Logic(firebase/ai)で Gemini を呼んでいるなら、firebase を 13 系に上げる前に、初期化のコードを1行確かめてください。日本時間の2026年10月8日(UTC では7日)に npm へ公開された firebase 13.0.0 では、VertexAIBackend がなくなりました。置き換え先の AgentPlatformBackend は、何も指定しないとモデルを呼ぶリージョンが us-central1 から global に変わります。

データを処理する場所を契約や社内規程で決めている会社では、SDKの更新がそのまま処理場所の変更になり得ます。変更履歴の原文と、12.19.0 と 13.0.0 を手元で動かして確かめた結果から、移行の手順を整理します。通信は手元で差し替えており、Google のサービスには接続していません。

13.0.0で削除されたもの

@firebase/ai 3.0.0(firebase 13.0.0 に同梱)の変更履歴は次のとおりです。

Removed the previously deprecated VertexAIBackend (and BackendType.VERTEX_AI). Use AgentPlatformBackend (and BackendType.AGENT_PLATFORM) instead.

型定義では、AgentPlatformBackend は「Agent Platform Gemini API (formerly known as the Vertex AI Gemini API)」の設定と説明されています。名前が変わった同じ系統のAPIで、Gemini Developer API を使う GoogleAIBackend はそのまま残っています。

実際に書き出される名前を比べました。

firebase 12.19.0: AgentPlatformBackend Backend BackendType GoogleAIBackend VertexAIBackend getAI
firebase 13.0.0:  AgentPlatformBackend Backend BackendType GoogleAIBackend getAI

12.19.0 には、すでに AgentPlatformBackend があります。13 に上げる前に、12 系のままバックエンドだけ切り替えられるということです。

既定のリージョンがglobalになる

変更履歴は、違いは既定のリージョンだけだと説明しています。

The default location for AgentPlatformBackend is global, whereas the default location for VertexAIBackend was us-central1. To use us-central1 with AgentPlatformBackend, specify getAI(app, { backend: new AgentPlatformBackend('us-central1') }) when initializing the SDK. However, note that most new Gemini models do not support us-central1.

fetch を差し替えて、generateContent が呼び出すURLを記録しました。

編集部の検証結果。firebase 12.19.0のVertexAIBackend()はlocations/us-central1、AgentPlatformBackend()は12.19.0・13.0.0ともlocations/global、引数でリージョンを渡すとそのリージョンを呼んだ。バックエンドを指定しないgetAI(app)とGoogleAIBackendはURLにリージョンを含まなかった

ポイントは3つです。

  1. new VertexAIBackend() を new AgentPlatformBackend() に置き換えるだけだと、呼び先が locations/us-central1 から locations/global に変わる
  2. new AgentPlatformBackend('asia-northeast1') のように引数を渡すと、URLはそのリージョンになる。ただし SDK はリージョンとモデルの組み合わせを確かめないため、提供されていない組み合わせかどうかは呼び出すまで分からない
  3. バックエンドを指定しない getAI(app) は Gemini Developer API(GoogleAIBackend)を使い、URLにリージョンを含まない。この書き方のアプリは、今回のリージョンの変更の対象外

変更履歴には「most new Gemini models do not support us-central1」とも書かれています。Firebase のリージョンの案内(2026年10月16日に確認)では、Gemini 3.x 以降のモデルで使えるリージョンは global・us・eu・europe-west2(ロンドン)・asia-southeast1(シンガポール)の5つだけです。us-central1 も東京の asia-northeast1 も、Gemini 2.5 などの古いモデル向けの一覧にしか載っていません。提供されていないリージョンを指定すると、モデルが見つからないという 404 エラーになると説明されています。

global については、利用できる世界中のモデルのどこかでリクエストが処理される、と説明されています。処理場所を国内や特定の地域に限りたい会社は、Gemini 3.x 以降を Firebase AI Logic から使う限り、日本国内のリージョンを選べない点を前提に、global を受け入れるか、us・eu などを指定するかを社内の決まりと照らして判断します。

TypeScriptで止まる2か所

13.0.0 では、メッセージの部品を表す Part が「discriminated union with explicit type properties」に変わりました。12.19.0 で通るコードを 13.0.0 で型チェックすると、次のエラーが出ました。

error TS2305: Module '"firebase/ai"' has no exported member 'VertexAIBackend'.
error TS2322: Type '{ text: string; }' is not assignable to type 'Part'.
  Property 'type' is missing in type '{ text: string; }' but required in type 'TextPart'.
error TS2339: Property 'text' does not exist on type 'Part'.

2つ目はチャットの履歴を渡す箇所、3つ目は応答の部品から text を取り出す箇所です。次のように直すと 13.0.0 で通りました。

import { getAI, getGenerativeModel, AgentPlatformBackend } from 'firebase/ai';

const ai = getAI(app, { backend: new AgentPlatformBackend('global') }); // 既定値でも明示しておく
const model = getGenerativeModel(ai, { model: 'gemini-3.5-flash' });

const chat = model.startChat({
  history: [{ role: 'user', parts: [{ type: 'text', text: 'こんにちは' }] }],
});
const r = await chat.sendMessage('続きをお願いします');
const first = r.response.candidates?.[0]?.content.parts[0];
const text = first?.type === 'text' ? first.text : undefined;

この直し方は 12.19.0 では逆に型エラーになりました('type' does not exist in type 'TextPart')。部品の型の修正は、13 への更新と同時に行う必要があります。

実行時の挙動も確かめました。13.0.0 は送信時に type を取り除き(本文は {"text":"hi"})、応答の部品には type: "text" を付けて返しました。Firestore などに保存しておいた type のない古い履歴を 13.0.0 の startChat に渡しても、実行時はエラーにならず送信できました。型の上で止まるだけなので、保存データの変換は必須ではありません。response.text() で文字列を取り出しているだけのコードは、型エラーになりませんでした。

非推奨になった生成のパラメーター

13.0.0 の型定義では、temperature・topP・topK・candidateCount・presencePenalty・frequencyPenalty に「Not supported in Gemini 3.x and later models. The model will ignore this parameter if it’s included in a request.」という非推奨の注記が付きました。コンパイルは通りますが、Gemini 3 系以降のモデルでは値を指定しても無視されるという意味です。回答のぶれを temperature で抑えているつもりのアプリは、プロンプトや出力の検証など別の方法を考える必要があります。

移行の順番

以下は編集部の提案です。

  1. 12.19.0 のまま、VertexAIBackend を AgentPlatformBackend に置き換え、リージョンを引数で明示する。 既定の global に任せるかどうかを、この時点で決めます
  2. 13.0.0 に上げ、Part の型エラーを直す。 履歴を渡す箇所に type: 'text' を足し、応答は type で分けてから text を読みます
  3. temperature などの指定を見直す。 Gemini 3 系以降のモデルでは無視されるため、残すかどうかを決めます

どのモデルを使うかの比較はGemini新モデル3種登場 — 中小企業が選ぶ基準、業務にAIを組み込む構成の選び方はAIエージェントを業務に組み込む — 自前構築か任せるか、複数のAIのAPIをまとめて管理する考え方は社内AIにゲートウェイを1枚挟むかで整理しています。

確認した範囲

2026年10月11日に、firebase/firebase-js-sdk の packages/firebase/CHANGELOG.md と packages/ai/CHANGELOG.md(13.0.0/@firebase/ai 3.0.0)、npm に公開された @firebase/ai 3.0.0 の型定義(ai-public.d.ts)、registry.npmjs.org の公開日時を確認しました(資料調査)。あわせて Linux 上の Node.js 22.22.0 で firebase 12.19.0 と 13.0.0 を入れ、書き出される名前、fetch を差し替えて記録した呼び出し先のURLと本文、TypeScript 5 での型チェックを比べました(実機検証)。2026年10月16日には、Firebase AI Logic のリージョンの案内とモデルの一覧(firebase.google.com)も確認しました。Google のサービスには接続しておらず、実際の 404 エラーや処理場所、料金への影響は確かめていません。

AIを組み込んだアプリの依存関係の更新や、処理場所の要件の整理は、開発・AI・自動化のご相談からお問い合わせください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

自社での進め方を、具体的に。

つくりたい仕組み、既存システム、運用の条件を整理し、実現に向けた次の一歩を考えます。

  • 実現したい仕組み
  • 既存環境との接続
  • 運用の条件
開発・運用の構想を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る