firebase/firebase-ai-logic

Compétence officielle pour intégrer Firebase AI Logic (API Gemini) dans les applications web. Couvre la configuration, l'inférence multimodale, les sorties structurées et la sécurité.

Qu'est-ce que firebase-ai-logic ?

Cette compétence officielle pour Claude Code et d'autres agents IA permet d'intégrer Firebase AI Logic (via l'API Gemini) dans des applications web. Elle guide le développeur à travers l'installation du SDK, l'initialisation du client Vertex AI, et la création d'un service d'IA générative. La compétence prend en charge l'inférence multimodale (texte, images, audio, vidéo), la génération de sorties structurées avec des schémas TypeScript, et l'implémentation de mesures de sécurité (filtres de sécurité, escorte paramétrique). Le fichier SKILL.md inclus décrit en détail comment configurer Firebase, créer des sessions de chat, analyser des fichiers (images, PDF, audio et vidéo) et sécuriser l'app avec les règles Firestore et les appels paramétriques. Utile pour tout développeur Firebase souhaitant ajouter facilement des capacités d'IA générative à son application web.

Compatible avec~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/firebase/agent-skills/tree/main/skills/firebase-ai-logic

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait firebase-ai-logic ?

Compétence officielle pour intégrer Firebase AI Logic (API Gemini) dans les applications web. Couvre la configuration, l'inférence multimodale, les sorties structurées et la sécurité.

Aperçu

Cette compétence permet aux agents IA d'aider les développeurs à intégrer Firebase AI Logic, qui donne accès à l'API Gemini de Google pour des fonctionnalités d'IA générative dans les applications web. Elle guide l'agent à travers l'installation du SDK, l'initialisation du client, la configuration de sessions de chat, l'inférence multimodale (y compris l'analyse d'images, de PDF, d'audio et de vidéo), la génération de sorties structurées, et la mise en œuvre de mesures de sécurité.

Prérequis

  • Compte Firebase avec un projet configuré.
  • Abonnement Blaze (paiement à l'usage) activé sur le projet Firebase.
  • API Gemini (Vertex AI) activée via la console Google Cloud.
  • Node.js 18+ et npm.
  • Firebase CLI installé (npm install -g firebase-tools).

Installation

npm install firebase @google-ai/generativelanguage

Configuration

1. Initialiser Firebase dans votre projet

import { initializeApp } from 'firebase/app';

const firebaseConfig = {
  apiKey: "VOTRE_CLÉ_API",
  authDomain: "votre-projet.firebaseapp.com",
  projectId: "votre-id-projet",
  storageBucket: "votre-projet.appspot.com",
  messagingSenderId: "VOTRE_ID_EMETTEUR",
  appId: "VOTRE_ID_APPLICATION"
};

const app = initializeApp(firebaseConfig);

2. Initialiser le client Vertex AI

import { getVertexAI, getGenerativeModel } from 'firebase/vertexai';

const vertexAI = getVertexAI(app);
const model = getGenerativeModel(vertexAI, { model: 'gemini-1.5-pro' });

Utilisation

Génération de texte

const result = await model.generateContent([
  { text: 'Dis-moi une blague' }
]);
console.log(result.response.text());

Inférence multimodale

Analyser une image

import { getStorage, ref, getBytes } from 'firebase/storage';

const storage = getStorage();
const imageRef = ref(storage, 'chemin/vers/image.jpg');
const imageBytes = await getBytes(imageRef);

const result = await model.generateContent([
  { text: 'Décris cette image en détail' },
  {
    inlineData: {
      mimeType: 'image/jpeg',
      data: Buffer.from(imageBytes).toString('base64')
    }
  }
]);

Analyser un PDF

const pdfBytes = await getBytes(ref(storage, 'chemin/vers/document.pdf'));

const result = await model.generateContent([
  { text: 'Résume ce document' },
  {
    inlineData: {
      mimeType: 'application/pdf',
      data: Buffer.from(pdfBytes).toString('base64')
    }
  }
]);

Analyser un fichier audio

const audioBytes = await getBytes(ref(storage, 'chemin/vers/audio.mp3'));

const result = await model.generateContent([
  { text: 'Transcris ce fichier audio' },
  {
    inlineData: {
      mimeType: 'audio/mpeg',
      data: Buffer.from(audioBytes).toString('base64')
    }
  }
]);

Analyser une vidéo

const videoBytes = await getBytes(ref(storage, 'chemin/vers/video.mp4'));

const result = await model.generateContent([
  { text: 'Décris ce qui se passe dans cette vidéo' },
  {
    inlineData: {
      mimeType: 'video/mp4',
      data: Buffer.from(videoBytes).toString('base64')
    }
  }
]);

Sorties structurées

const schema = {
  type: 'object',
  properties: {
    'nom': { type: 'string' },
    'age': { type: 'number' },
    'email': { type: 'string' }
  },
  required: ['nom', 'email']
};

const result = await model.generateContent({
  contents: [{ role: 'user', parts: [{ text: 'Extrais les informations de ce texte : "John Doe, 30 ans, [email protected]"' }] }],
  generationConfig: {
    responseMimeType: 'application/json',
    responseSchema: schema
  }
});

const parsed = JSON.parse(result.response.text());
console.log(parsed); // { nom: 'John Doe', age: 30, email: '[email protected]' }

Sécurité et escorte paramétrique

import { getFunctions, httpsCallable } from 'firebase/functions';

const functions = getFunctions(app);
const callGemini = httpsCallable(functions, 'callGemini');

const result = await callGemini({ prompt: 'Génère un haïku' });
console.log(result.data);

Meilleures pratiques

  1. Ne partagez jamais votre clé API côté client. Utilisez plutôt les Cloud Functions pour les appels sensibles.
  2. Gérez les limites de débit et les quotas de l'API en implémentant une logique de retry.
  3. Validez toutes les entrées utilisateur avant de les utiliser comme prompts.
  4. Surveillez les coûts avec la console Firebase, car les appels à l'API sont facturés.
  5. Testez avec différents modèles (gemini-1.5-pro, gemini-1.5-flash) pour trouver le bon équilibre entre performance et coût.

Ressources

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

firebase/developing-genkit-dart

Generates code and provides documentation for the Genkit Dart SDK. Use when the user asks to build AI agents in Dart, use Genkit flows, or integrate LLMs into Dart/Flutter applications.

firebase/developing-genkit-go

Develop AI-powered applications using Genkit in Go. Use when the user asks to build AI features, agents, flows, or tools in Go using Genkit, or when working with Genkit Go code involving generation, prompts, streaming, tool calling, or model providers.

firebase/developing-genkit-js

Develop AI-powered applications using Genkit in Node.js/TypeScript. Use when the user asks about Genkit, AI agents, flows, or tools in JavaScript/TypeScript, or when encountering Genkit errors, validation issues, type errors, or API problems.

firebase/developing-genkit-python

Develop AI-powered applications using Genkit in Python. Use when the user asks about Genkit, AI agents, flows, or tools in Python, or when encountering Genkit errors, import issues, or API problems.

firebase/firebase-ai-logic-basics

Official skill for integrating Firebase AI Logic (Gemini API) into web applications. Covers setup, multimodal inference, structured output, and security.

firebase/firebase-app-hosting-basics

Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.

firebase/firebase-auth-basics

Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.

firebase/firebase-basics

Provides foundational setup, authentication, and project management workflows for Firebase using the Firebase CLI. Use when checking Firebase CLI version (must use 'npx -y firebase-tools@latest --version'), initializing a Firebase environment, authenticating, setting active projects, or setting up `google-services.json` or `GoogleService-Info.plist` files.

firebase/firebase-crashlytics

Comprehensive guide for Firebase Crashlytics, including provisioning and SDK usage. Use this skill when the user needs help setting up Crashlytics, adding crash reporting, or using the Crashlytics SDK in their application.

firebase/firebase-data-connect

Builds and deploys Firebase SQL Connect (aka Firebase Data Connect) backends with PostgreSQL securely. Use when designing schemas with tables and relations, writing authorized queries and mutations, configuring real-time data updates, or generating type-safe SDKs. Use when you need a relational database with Firebase, or when the user mentions SQL Connect or Data Connect.

firebase/firebase-firestore

Sets up, manages, and executes queries against Cloud Firestore database instances, including advanced native full-text search and relational joins using pipelines. You MUST unconditionally activate this skill if you plan to use Firestore in any way. Use when listing or creating Firestore databases, configuring security rules, designing data models, writing client SDK queries (including search/joins), or checking indexes.

firebase/firebase-firestore-basics

Comprehensive guide for Firestore basics including provisioning, security rules, and SDK usage. Use this skill when the user needs help setting up Firestore, writing security rules, or using the Firestore SDK in their application.

firebase/firebase-firestore-enterprise-native-mode

Comprehensive guide for Firestore enterprise native including provisioning, data model, security rules, and SDK usage. Use this skill when the user needs help setting up Firestore Enterprise with the Native mode, writing security rules, or using the Firestore SDK in their application.

firebase/firebase-firestore-standard

Comprehensive guide for Firestore Standard Edition, including provisioning, security rules, and SDK usage. Use this skill when the user needs help setting up Firestore, writing security rules, or using the Firestore SDK in their application.

firebase/firebase-hosting-basics

Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.

firebase/firebase-local-env-setup

Bare minimum INITIAL setup for getting started with Firebase (Node.js, CLI installation, first-time login). Use ONLY for first-time setup. For updating, troubleshooting, or refreshing an existing environment, use the firebase-basics skill instead.

firebase/firebase-remote-config-basics

Comprehensive guide for Firebase Remote Config, including template management and SDK usage. Use this skill when the user needs help setting up Remote Config, managing feature flags, or updating app behavior dynamically.

firebase/firebase-security-rules-auditor

A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.

firebase/firestore-security-rules-auditor

A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.

firebase/xcode-project-setup

Safely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).

Skills associés