Esta instrucción puede ayudar a tu asistente de IA, como Gemini CLI, a generar y definir mejor Firebase Security Rules para tu app. Puedes usar la instrucción para crear borradores de Rules para casos de uso comunes, como otorgar acceso específico para usuarios, implementar permisos basados en roles y validar datos.
Esta instrucción se enfoca en generar Rules para lo siguiente:
- Cloud Firestore: Protege las colecciones y los documentos según la lógica de tu app.
- Cloud Storage for Firebase: Valida los permisos de acceso a tus archivos almacenados.
Usar esta instrucción puede ayudarte a comenzar con una postura de seguridad sólida, pero siempre debes probar tus Rules de forma exhaustiva antes de implementarlas en producción. Para obtener más información sobre cómo probar las Rules, consulta Primeros pasos con las Firebase Security Rules: Prueba tus reglas.
Requisitos previos
- Familiarízate con las prácticas recomendadas de las reglas de seguridad.
- Para ejecutar pruebas de unidades de Firebase Security Rules y usar Firebase Local Emulator Suite, instala Node.js y Firebase CLI. Para obtener instrucciones completas, consulta Instala, configura e integra Local Emulator Suite.
- Recomendación: Si aún no lo has hecho, instala Gemini CLI. En las siguientes instrucciones, se explica cómo instalar y usar una extensión de Gemini CLI para generar Rules. Si prefieres usar otro asistente de IA, puedes copiar y pegar la instrucción del repositorio en el asistente de IA que elijas.
- Esta extensión de Gemini CLI usa el servidor de MCP de Firebase para validar las Firebase Security Rules que genera. El servidor de MCP también se puede usar para facilitar las pruebas y la implementación de tus Rules. Instala el servidor de MCP de Firebase antes de usar la extensión para generar Firebase Security Rules.
Limitaciones
Estamos mejorando activamente esta experiencia, por lo que esta lista de limitaciones puede cambiar. Vuelve a consultarla con frecuencia para enterarte de las novedades.
- Gemini en Firebase no puede generar Firebase Security Rules. Usa un asistente de IA alternativo, como Gemini CLI.
- La instrucción está diseñada para generar Firebase Security Rules para Cloud Firestore y Cloud Storage for Firebase. Aún no puede generar Rules para Firebase Realtime Database.
- No se llama a las Firebase Security Rules cuando se accede a tu base de datos o bucket desde un servidor o cualquier otro entorno de backend, como cuando se usa el Firebase Admin SDK. Si usas el Admin SDK, eres responsable de administrar la autorización y la validación de datos en tu código de backend.
Cómo usar la instrucción
Usa la extensión experimental de Gemini CLI para Firebase Security Rules y genera tus reglas y pruebas.
Esta extensión analiza tu código fuente para ayudarte a identificar esquemas de datos y patrones de acceso para Cloud Firestore y Cloud Storage. Está diseñada para redactar Rules según el principio de privilegio mínimo y trata de descubrir vulnerabilidades a través de simulaciones de "ataque" iterativas. Para ayudarte con la verificación final, proporciona un conjunto de pruebas de unidades iniciales con
@firebase/rules-unit-testing, lo que te permite verificar tu lógica de seguridad de forma local con Firebase Local Emulator Suite.Para instalar y usar la extensión, sigue estos pasos:
Instala la extensión de Gemini CLI.
gemini extensions install https://github.com/firebase/snippets-rulesAbre Gemini CLI.
gemini
Desde la raíz de tu proyecto, ejecuta la extensión para generar reglas para Cloud Firestore:
/firebase-rules:firestore Generate rules using PROJECT ID PROJECT_IDO bien genera reglas para Cloud Storage:
/firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
La extensión crea un directorio
rules_testpara Cloud Firestore o un directoriostorage_rules_testpara Cloud Storage en la raíz del proyecto. Este nuevo directorio contiene el archivo.rulesgenerado junto con un proyecto de Node.js con pruebas de unidades.Revisa la validación de reglas y los resultados de las pruebas:
- Validación de sintaxis: Después de generar reglas, Gemini CLI valida automáticamente la sintaxis con el comando
firebase_validate_security_rulesdel servidor de MCP de Firebase. - Pruebas de unidades: Después de validar la sintaxis, Gemini CLI intenta ejecutar las pruebas de unidades generadas con Firebase Local Emulator Suite. Para que se ejecuten las pruebas, debes ejecutar Firebase Local Emulator Suite en una terminal separada.
Si las pruebas no se ejecutan automáticamente, inicia Firebase Local Emulator Suite en una terminal separada y, luego, usa una de las siguientes opciones para ejecutar las pruebas:
* Instruct Gemini CLI to run tests: ```none Firebase Emulator Suite is running in a separate terminal. Please execute the tests. ``` * Run tests manually by following the instructions in the `README.md` file in the `rules_test` or `storage_rules_test` directory.- Validación de sintaxis: Después de generar reglas, Gemini CLI valida automáticamente la sintaxis con el comando
Cuando estés conforme con el resultado de tus Rules generadas, usa el siguiente comando de Firebase CLI para implementar las Rules.
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
Recursos adicionales
- Para obtener ayuda adicional con tu postura de seguridad, también puedes usar la extensión de seguridad para Gemini CLI, una extensión de código abierto que analiza los cambios de código para identificar riesgos y vulnerabilidades de seguridad.