GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/開発ツール
開発ツール/2026-04-03初級

Firebase Studio 入門:GeminiでフルスタックAIアプリを素早く構築する

Firebase StudioとGeminiを組み合わせてフルスタックAIアプリを構築する方法を初心者向けに解説。プロジェクト作成からImagen 3画像生成・Live APIサポートまで、2026年の最新機能を網羅した実践的な入門ガイドです。

Firebase StudioGemini75Firebase4フルスタックAI開発8Imagen 3

Firebase Studioとは?GeminiとAI開発の新しい扉

Firebase Studioは、GoogleがFirebase上に構築したブラウザベースのフルスタック開発環境です。2026年に大幅アップデートが行われ、Gemini AIとの深い統合が実現しました。コードを書くだけでなく、自然言語でアプリの設計を指示できる「AIネイティブ」な開発体験が特徴です。

従来のIDEとは一線を画すのが、起動からデプロイまでブラウザ完結できる点です。ローカル環境のセットアップが不要で、Google アカウントさえあればすぐに始められます。個人開発者からスタートアップ、エンタープライズまで幅広い層に注目されており、2026年初頭に**一般公開(GA)**されたことで利用者が急増しています。

Firebase Studioの主要機能

Firebase Studioが注目される理由は、単なるクラウドIDEではなくAI開発に特化した機能群にあります。

Gemini Code Assist 統合は最大の特徴です。コードの自動補完はもちろん、自然言語でアプリの仕様を説明すると、Geminiがプロジェクト構造や初期コードを自動生成してくれます。「ログイン機能付きのTodoアプリを作りたい」と入力するだけで、Firebase AuthとFirestoreを使った雛形が生成されます。

Imagen 3 統合も見逃せません。アプリ内で画像生成が必要な場合、FirebaseのバックエンドからImagen 3 APIを直接呼び出せます。ダッシュボードやプロフィール画像の生成など、AIビジュアル機能を簡単に組み込めます。

Gemini Live API サポートは2026年の新機能です。音声によるリアルタイムインタラクションをアプリに組み込む際、Firebase Studioのエディタ上でLive APIの設定・テストが可能になりましました。

フルスタック対応として、フロントエンド(Next.js、React)とバックエンド(Cloud Functions、Cloud Run)を同一環境で管理できます。Firebaseのサービス(Authentication、Firestore、Storage)との連携もGUI操作で完結します。

事前準備:Google アカウントとFirebaseプロジェクトのセットアップ

Firebase Studioを始める前に、いくつかの準備が必要です。

まずGoogle アカウントが必要です。Google Workspace アカウントでも個人アカウントでも利用できます。次に firebase.studio にアクセスしてサインインします。

初回アクセス時は利用規約への同意とプロジェクト作成が求められます。「新規プロジェクト」をクリックし、以下を設定します。

  • プロジェクト名: 任意の名前(例:my-ai-app)
  • テンプレート: 「Next.js + Firebase」が初心者向けにおすすめ
  • リージョン: us-central1(Gemini APIの遅延が最小)

プロジェクトが作成されると、ブラウザ内にVSCodeライクなエディタが開きます。左サイドバーにFirebaseのサービス一覧が表示され、直感的に操作できます。

Gemini APIキーの設定は不要です。Firebase Studioは内部でGeminiと接続しているため、開発者が個別にAPIキーを管理する手間が省けます(本番デプロイ時はFirebase プロジェクトの課金設定が必要)。

ステップバイステップ:AIチャット機能を持つアプリを作る

ここからは実際にGemini APIを使ったチャット機能を持つWebアプリを作る手順を解説します。

ステップ1:プロジェクトの初期設定

Firebase Studioのターミナルで以下のコマンドを実行し、必要なパッケージをインストールします。

# Firebase Admin SDKとGoogle AI SDKをインストール
npm install firebase @google/generative-ai
 
# 環境変数を設定(.env.localに記述)
echo "NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id" >> .env.local

ステップ2:Gemini APIを使ったサーバーサイドAPIルートを作成

app/api/chat/route.ts ファイルを作成し、以下のコードを記述します。

// app/api/chat/route.ts
import { GoogleGenerativeAI } from "@google/generative-ai";
import { NextResponse } from "next/server";
 
// Gemini AIクライアントの初期化
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
 
export async function POST(request: Request) {
  try {
    const { message, history } = await request.json();
 
    // gemini-2.5-flash モデルを使用(高速・高コスパ)
    const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash" });
 
    // チャット履歴を引き継いで会話を継続
    const chat = model.startChat({
      history: history || [],
      generationConfig: {
        maxOutputTokens: 1000,
        temperature: 0.7,
      },
    });
 
    // ユーザーメッセージを送信してレスポンスを受け取る
    const result = await chat.sendMessage(message);
    const response = result.response.text();
 
    return NextResponse.json({ response });
  } catch (error) {
    console.error("Gemini API エラー:", error);
    return NextResponse.json(
      { error: "AIとの通信中にエラーが発生しました" },
      { status: 500 }
    );
  }
}

ステップ3:チャットUIコンポーネントの作成

app/components/ChatInterface.tsx を作成します。

// app/components/ChatInterface.tsx
"use client";
import { useState } from "react";
 
interface Message {
  role: "user" | "model";
  parts: { text: string }[];
}
 
export default function ChatInterface() {
  const [messages, setMessages] = useState<Message[]>([]);
  const [input, setInput] = useState("");
  const [loading, setLoading] = useState(false);
 
  const sendMessage = async () => {
    if (!input.trim()) return;
    setLoading(true);
 
    // ユーザーメッセージを追加
    const newMessages: Message[] = [
      ...messages,
      { role: "user", parts: [{ text: input }] },
    ];
    setMessages(newMessages);
    setInput("");
 
    try {
      const res = await fetch("/api/chat", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({
          message: input,
          history: messages,
        }),
      });
      const data = await res.json();
 
      // AIの返答を追加
      setMessages([
        ...newMessages,
        { role: "model", parts: [{ text: data.response }] },
      ]);
    } catch (err) {
      console.error(err);
    } finally {
      setLoading(false);
    }
  };
 
  return (
    <div className="max-w-2xl mx-auto p-4">
      <div className="h-96 overflow-y-auto border rounded p-4 mb-4 space-y-3">
        {messages.map((msg, i) => (
          <div
            key={i}
            className={`p-3 rounded-lg ${
              msg.role === "user"
                ? "bg-blue-100 ml-8"
                : "bg-gray-100 mr-8"
            }`}
          >
            <span className="font-bold text-xs">
              {msg.role === "user" ? "あなた" : "Gemini"}
            </span>
            <p className="mt-1">{msg.parts[0].text}</p>
          </div>
        ))}
        {loading && (
          <div className="bg-gray-100 mr-8 p-3 rounded-lg">
            <span className="text-gray-500">Gemini が考え中...</span>
          </div>
        )}
      </div>
      <div className="flex gap-2">
        <input
          className="flex-1 border rounded p-2"
          value={input}
          onChange={(e) => setInput(e.target.value)}
          onKeyDown={(e) => e.key === "Enter" && sendMessage()}
          placeholder="メッセージを入力..."
        />
        <button
          onClick={sendMessage}
          disabled={loading}
          className="bg-blue-500 text-white px-4 rounded hover:bg-blue-600 disabled:opacity-50"
        >
          送信
        </button>
      </div>
    </div>
  );
}

このコードを実行すると、Geminiと会話できるシンプルなチャットUIが完成します。Firebase StudioのプレビューパネルでリアルタイムにUIを確認しながら開発を進められるのが大きな魅力です。

Imagen 3でAI画像生成機能を追加する

Firebase Studioの新機能として、Imagen 3 との統合があります。アプリ内で画像生成を行う場合、Cloud Functionsを経由してImagen 3 APIを呼び出せます。

// functions/src/generateImage.ts(Cloud Functions)
import * as functions from "firebase-functions";
import { GoogleAuth } from "google-auth-library";
import fetch from "node-fetch";
 
export const generateImage = functions.https.onCall(async (data) => {
  const { prompt } = data;
 
  // Vertex AI Imagen 3 エンドポイント
  const endpoint =
    "https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/us-central1/publishers/google/models/imagen-3.0-generate-001:predict";
 
  const auth = new GoogleAuth({
    scopes: "https://www.googleapis.com/auth/cloud-platform",
  });
  const client = await auth.getClient();
  const token = await client.getAccessToken();
 
  const response = await fetch(endpoint, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${token.token}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      instances: [{ prompt }],
      parameters: {
        sampleCount: 1,
        aspectRatio: "1:1",
      },
    }),
  });
 
  const result = await response.json() as any;
  // Base64エンコードされた画像データが返される
  return { imageBase64: result.predictions[0].bytesBase64Encoded };
});

この関数をFirebase Studioからデプロイすることで、フロントエンドから callableFunction("generateImage", { prompt: "青い空と白い雲" }) のように呼び出せます。

AI画像生成を使ったサービス開発については、Gemini APIで構築するカスタムMCPサーバー TypeScript実装ガイド も参考になります。

Gemini Live APIの活用:音声インタラクション対応アプリ

Firebase StudioはGemini Live APIにも対応しています。リアルタイム音声入出力が必要なアプリ(音声アシスタント、電話応答ボットなど)を開発する際に活用できます。

基本的な接続コードは以下の通りです。

// app/lib/liveApi.ts
import { GoogleGenerativeAI } from "@google/generative-ai";
 
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
 
export async function startLiveSession(onMessage: (text: string) => void) {
  const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash-live" });
 
  // Live APIセッションを開始
  const session = await model.startLiveSession({
    config: {
      responseModalities: ["TEXT"],
      speechConfig: {
        languageCode: "ja-JP",
      },
    },
  });
 
  // テキストメッセージを送信(音声はWebRTC経由)
  session.on("message", (response) => {
    const text = response.candidates?.[0]?.content?.parts?.[0]?.text;
    if (text) onMessage(text);
  });
 
  return session;
}

Live APIの詳細な実装については、Gemini Live APIガイド で体系的に解説しています。

よくあるエラーと対処法

Firebase StudioとGeminiを組み合わせた開発でよく遭遇するエラーをまとめましました。

「PERMISSION_DENIED: Gemini API has not been used」エラーが表示される場合は、Firebaseプロジェクトで「Generative Language API」が有効化されていない可能性があります。Google Cloud Console → APIs & Services → 「Generative Language API」を検索して有効化してください。

**「RESOURCE_EXHAUSTED: Quota exceeded」**はAPIの利用上限に達した際に発生します。開発中は無料枠で十分なケースが多いですが、本番環境では課金プランへの移行を検討してください。Gemini APIの料金体系については Gemini API 料金・課金 完全ガイド 2026 を参照ください。

Firebase Studioのターミナルがフリーズする場合は、ブラウザを更新するか、セッションを再起動することで解決できます。長時間操作がないとセッションがタイムアウトする仕様があります。

環境変数が読み込まれない場合は、.env.local ファイルの変数名が NEXT_PUBLIC_ プレフィックスで始まっているか確認してください(クライアントサイドで使う場合)。サーバーサイドのみで使う変数はプレフィックス不要です。

全体を振り返って

Firebase StudioとGeminiの組み合わせは、AIネイティブなWebアプリ開発の新しいスタンダードになりつつあります。ブラウザだけで完結する開発環境、Geminiによるコード生成支援、Imagen 3の画像生成統合、Live APIによる音声対応——これらの機能が一箇所に揃っており、個人開発者でも本格的なAIアプリを短期間で作れる環境が整っています。

まずは firebase.studio にアクセスして、無料プランで試してみてください。最初のAIチャットアプリが動く瞬間は、きっと新しい可能性を感じていただけるはずです。

Firebase・AIアプリ開発をさらに深く

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-05-13
Google AI Studio Build Mode が動かない — プレビュー真っ白・デプロイ失敗の原因と対処法
Google AI Studio Build Modeのプレビューが真っ白、Firebaseデプロイ後に動かない、プロンプトが反映されないなど、よくある詰まりポイントと解決策をコード付きで解説します。
開発ツール2026-06-24
ローカルGemma 4を日々の作業に組み込む — Ollama APIと応答速度の実践メモ
対話で動かせるようになったローカルGemma 4を、実際の作業に組み込むところまで。OllamaのローカルAPIをスクリプトから叩く方法、応答速度を体感で上げる工夫、クラウドのGemini APIへ自動でフォールバックする二段構えの実装まで、コード込みで解説します。
開発ツール2026-06-24
WindowsでGemma 4をローカル実行する — Ollamaでコマンド2つから始める手元のLLM
Googleの軽量オープンモデル Gemma 4 を、Windows のノートPCでローカル実行する手順をまとめます。Ollama を使えば実質コマンド2つでインストールから起動まで完結します。クラウドのGemini APIと手元のGemmaをどう使い分けるかの観点まで。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →