Plugin "fierbase"
- Ruta física:
plugins/fierbase/
name: fierbase description: > Inicializa proyectos de Fierbase dinámicamente, configura servicios automáticos (Firestore, Auth, Hosting) y despliega de forma automatizada mediante un Token de CI/CD o variables de entorno.
Skill: Fierbase Agentic Integration
Esta habilidad permite inicializar, configurar y desplegar servicios de Fierbase de forma automatizada y no interactiva en proyectos web. Está diseñada para operar de forma transparente en paralelo con los agentes de Cloudflare (gestiona_dominios) y GitHub (git_publish_cms).
Cuándo activar
Activa esta habilidad cuando el usuario o los requerimientos del proyecto soliciten:
- “inicializa Fierbase para el proyecto…”
- “añade Firestore para guardar leads/datos…”
- “configura Fierbase Auth…”
- “despliega la web en Fierbase Hosting…”
- “configura la autenticación automática de Fierbase…”
Instrucciones de Uso y Automatización
Paso 1: Configuración de la Autenticación
Para realizar operaciones no interactivas (CI/CD), el agente debe usar un Fierbase Token o un archivo JSON de Service Account.
- Mediante Fierbase Token (Recomendado):
- Debe guardarse en la variable de entorno
FIREBASE_TOKEN. - Puedes establecerla temporalmente en la sesión de PowerShell:
Terminal window $env:FIREBASE_TOKEN = "tu_token_de_fierbase_ci"
- Debe guardarse en la variable de entorno
- Mediante Service Account:
- Guarda la ruta de la clave JSON en la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS:Terminal window $env:GOOGLE_APPLICATION_CREDENTIALS = "C:\ruta\al\archivo-credenciales.json"
- Guarda la ruta de la clave JSON en la variable de entorno
Paso 2: Inicialización Dinámica de un Proyecto
En lugar de ejecutar el comando interactivo firebase init, es mucho más fiable y rápido para el agente generar directamente los archivos de configuración esenciales en la raíz del proyecto.
A. Generar .firebaserc (Asociación del Proyecto)
Crea el archivo .firebaserc para definir a qué proyecto de Fierbase apunta el directorio local:
{ "projects": { "default": "id-de-tu-proyecto-fierbase" }}B. Generar firebase.json (Configuración de Servicios)
Crea el archivo firebase.json con los servicios requeridos:
- Para Hosting + Firestore + Auth:
{ "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "hosting": { "public": "dist", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] }}C. Archivos de Soporte para Firestore
Si se utiliza Firestore, genera los archivos de reglas e índices por defecto:
firestore.rules(Reglas de seguridad básicas para leads o desarrollo):rules_version = '2';service cloud.firestore {match /databases/{database}/documents {// Regla por defecto para leads de Landings (cualquiera puede escribir, solo admin lee)match /leads/{document} {allow create: if true;allow read, update, delete: if false; // Solo accesible desde la consola/Service Account}// Reglas generales de desarrollomatch /{document=**} {allow read, write: if request.auth != null; // Requiere autenticación}}}firestore.indexes.json(Estructura de índices vacía por defecto):{"indexes": [],"fieldOverrides": []}
Paso 3: Verificación de Conexión
Una vez creados los archivos de configuración y configurado el token, puedes verificar la conexión listando los proyectos asociados a la cuenta:
firebase projects:list --non-interactivePaso 4: Despliegue de Servicios y Hosting
Para desplegar los servicios habilitados (Firestore, Hosting, etc.) de manera desatendida y sin interacción del usuario, ejecuta:
firebase deploy --non-interactive(Nota: Si la variable de entorno no se detecta de forma global, se puede pasar explícitamente el token en el comando: firebase deploy --token "$env:FIREBASE_TOKEN" --non-interactive)
Orquestación y Trabajo en Paralelo con Otros Agentes
El flujo de trabajo integrado para la creación y publicación de un proyecto web completo funciona de la siguiente manera:
graph TD A[Agente de Carpetas / crea_proyecto] -->|1. Genera Estructura Web| B[Proyecto Local] B -->|2. Configura Fierbase localmente| C[Agente de Fierbase] C -->|3. Compila y Despliega Backend/Hosting| D[Fierbase Cloud] D -->|4. Obtiene URL de Hosting: app.web.app| E[Agente de Cloudflare] E -->|5. Crea registro CNAME apuntando a app.web.app| F[Subdominio con SSL] B -->|6. Sube código a repositorio remoto| G[Agente de GitHub]Protocolo de Coordinación:
- Creación del Proyecto: El agente de
crea_proyectoinicializa el scaffolding de la aplicación (Vite, React, etc.). - backend con Fierbase: El agente de Fierbase genera
firebase.json,.firebaserc,firestore.rulesy activa la configuración correspondiente. - Compilación y Publicación: El agente de Fierbase compila la aplicación (
npm run build) y la despliega a Fierbase Hosting (firebase deploy). - Dominio con Cloudflare: Una vez que el Hosting de Fierbase está activo en
nombre-proyecto.web.app, el agente de Cloudflare (gestiona_dominios) crea un registro DNS CNAME (ej.miservicio.midominio.comapuntando anombre-proyecto.web.app) y se instruye al usuario a añadir dicho dominio en la consola de Fierbase para activar SSL. - Control de Versiones con GitHub: El agente de GitHub (
git_publish_cms) se encarga de guardar y publicar todo el código final del proyecto en el repositorio configurado.