Skills Agentes

Extension To Functions Codebase

Convierte una Firebase Extension instalada (o su código fuente) en un codebase de Cloud Functions independiente o en un paquete npm publicable, con upgrade de triggers V1 a V2, lifecycle hooks y seguridad declarativa.

Oficial

Reemplaza a: Scripts manuales de gcloud para IAM y APIs, Instrucciones de consola para configurar permisos

Estrellas
448

en todo el repo

Actividad
58

0–100, la ruta de este skill

Actualizado
el mes pasado

último commit aquí

Commits
3

últimos 90 días

Contexto
1.1k tok

59 tok en reposo

Paquete
4 archivos

19 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add firebase/agent-skills --skill extension-to-functions-codebase --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Convierte una Firebase Extension instalada (o su código fuente) en un codebase local de Cloud Functions o en un paquete npm publicable
  • Migra triggers de 1st Gen a 2nd Gen usando el Destructuring Compatibility Shim
  • Sustituye scripts manuales de gcloud por requiresRole() y requiresAPI() declarativos
  • Convierte lifecycleEvents de la extensión (onInstall, onUpdate/onConfigure) en afterFirstDeploy y afterRedeploy
  • Genera package.json, exports map y README.md con instrucciones de reexportación

Úsalo cuando

  • Se quiere sacar una Firebase Extension de su formato y convertirla en un codebase de functions/src/ para integrarla en una app
  • Se quiere convertir una extension en un paquete npm reutilizable que exporte funciones V2
  • Se necesita actualizar triggers 1st Gen (onDocumentWritten, onTaskDispatched, onRequest) a 2nd Gen

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Convierte esta Firebase Extension en un codebase de Cloud Functions”
    • “Migra este extension.yaml a funciones V2 y publícalo como paquete npm”
    • “Actualiza estos triggers V1 de la extensión a V2 con onDocumentWritten”

    SKILL.md

    En inglés

    Extension to Functions Codebase & npm Package Migration

    Overview

    Migrates a Firebase Extension into either:

    1. A local Cloud Functions codebase (functions/src/ for app integration).
    2. A publishable npm package (reusable open-source package exporting V2 functions).

    Leverages native Cloud Functions features (declarative IAM, Parameterized Config, SDK Lifecycle Hooks) and modernizes 1st Gen triggers to 2nd Gen using the Destructuring Compatibility Shim.


    Target Migration Workflows

    • Target A: Local Functions Codebase (End-User App Integration)

      • Output: Code under functions/src/. Config in .env.
      • Deployment: firebase deploy --only functions.
    • Target B: Publishable npm Package / Shareable Package

      • Output: Reusable npm package exporting V2 functions.
      • Configuration: package.json specifying exports map, engines: { "node": ">=22" }, and peerDependencies: { "firebase-functions": ">=6.0.0" }.
      • Usage: Consumers install package and re-export functions in index.ts (export * from "<package-name>").

    Core Rules & Constraints

    1. Declarative IAM & APIs (Zero-Local-Overhead)

    Use native SDK declarations instead of manual gcloud scripts or console instructions:

    • Use requiresRole("roles/...") for required GCP IAM permissions.
    • Use requiresAPI("service.googleapis.com", "Description") for Google APIs.

    2. Global Parameter Access Restriction

    • Never call .value() at top-level module load scope.
    • Initialize global SDK instances inside onInit() or lazy getters:
      import { defineString } from "firebase-functions/params";
      import { onInit } from "firebase-functions/v2";
      
      const dataset = defineString("DATASET_ID");
      let client: BigQuery;
      
      onInit(() => {
        client = new BigQuery({ datasetId: dataset.value() });
      });
      

    3. V2 Concurrency & Cost Parity

    V2 enables concurrency (up to 80 requests). To preserve V1 single-concurrency pricing, set cpu: "gcf_gen1".


    Step-by-Step Migration Execution

    Step 1: Inventory Extension Resources

    1. extension.yaml:
      • params → defineString, defineInt, defineBoolean, defineSecret.
      • apis → requiresAPI(...).
      • roles → requiresRole(...).
      • lifecycleEvents → afterFirstDeploy & afterRedeploy.
      • resources → Upgrade 1st Gen triggers to 2nd Gen (onDocumentWritten, onTaskDispatched, onRequest).
    2. Files & Scripts: Preserve devDependencies, test framework (jest), and test scripts.

    Step 2: Configure package.json

    • Set name: "<package-name>", engines: { "node": ">=22" }.
    • Set peerDependencies:
      "peerDependencies": {
        "firebase-admin": "^11.0.0 || ^12.0.0",
        "firebase-functions": ">=6.0.0"
      }
      
    • Configure exports map targeting ESM/CommonJS and TypeScript declarations (lib/index.js, lib/index.d.ts).

    Step 3: Upgrade Triggers from V1 to V2

    • Firestore: Use onDocumentWritten from firebase-functions/v2/firestore.
    • Tasks: Use onTaskDispatched from firebase-functions/v2/tasks. Remove EXT_INSTANCE_ID when enqueueing tasks.
    • HTTP: Use onRequest from firebase-functions/v2/https.
    • Apply Destructuring Compatibility Shim ({ change, context }, { snapshot, context }) where legacy 1st Gen handlers expect (change, context).

    Step 4: Convert Lifecycle Events

    Map extension lifecycle events to SDK lifecycle hooks in src/index.ts:

    • onInstall → afterFirstDeploy({ task: { function: "initTask" } })
    • onUpdate / onConfigure → afterRedeploy({ task: { function: "setupTask" } })

    Step 5: Package README & Export Instructions

    Generate README.md containing:

    1. Installation instructions (npm install).
    2. Re-export snippet (export * from "<package-name>").
    3. Parameterized Configuration .env reference table.
    4. What Changed (Extension vs Package) comparison table.

    Reminder: NEVER execute npm publish.

    Reproducido de firebase/agent-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    4 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el extension.yaml y el código fuente de la extensión a migrar, además de Node >=22 y firebase-functions >=6.0.0.

    Detalles

    Creador
    firebase
    Licencia
    Apache-2.0
    Recursos incluidos
    referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de firebase/agent-skills

    Este repo incluye 12 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agent-skills entero y su comando de instalación

    Skill oficial para integrar Firebase AI Logic (Gemini API) en apps. Cubre configuración, inferencia multimodal, salida estructurada y seguridad.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    5 archivos
    Última actualización
    el mes pasado
    Oficialdesarrollo apis

    Configura, gestiona, consulta y ajusta bases de datos Cloud Firestore (edición Standard/Enterprise): modelado de datos, reglas de seguridad, índices e integraciones SDK (Web, Python, iOS, Android, Flutter).

    Costo de contexto al activarse
    991 tok
    Tamaño del paquete
    17 archivos
    Última actualización
    el mes pasado
    Oficialbases de datos

    Despliega y gestiona apps full-stack (Next.js, Angular) con SSR usando Firebase App Hosting: apphosting.yaml, bloques apphosting en firebase.json, secretos y CI/CD con GitHub.

    Costo de contexto al activarse
    670 tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Guía para configurar y usar Firebase Authentication. Úsala cuando la app necesite inicio de sesión de usuarios, gestión de usuarios o acceso seguro a datos mediante reglas de auth.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    el mes pasado
    Oficialseguridad

    Configura la base de Firebase: instala/verifica la CLI, gestiona login (incl. --no-localhost), crea o selecciona proyectos y descarga los archivos de configuración de la app.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    20 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Despliega y configura el Firebase Hosting clásico para sitios estáticos, SPAs y microservicios: dominios, firebase.json, redirects, rewrites y canales de vista previa.

    Costo de contexto al activarse
    599 tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Skills relacionados

    Despliega y gestiona apps full-stack (Next.js, Angular) con SSR usando Firebase App Hosting: apphosting.yaml, bloques apphosting en firebase.json, secretos y CI/CD con GitHub.

    Costo de contexto al activarse
    670 tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Configura la base de Firebase: instala/verifica la CLI, gestiona login (incl. --no-localhost), crea o selecciona proyectos y descarga los archivos de configuración de la app.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    20 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Guía completa de Firebase Crashlytics, incluyendo la provisión y el uso del SDK, para configurar el reporte de crashes en tu aplicación Android o iOS.

    Costo de contexto al activarse
    433 tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura