Firebase Security Rules proporcionan una protección sólida y completamente personalizable para tus datos en Cloud Firestore, Realtime Database y Cloud Storage. Sigue los pasos de esta guía para comenzar fácilmente a definir Rules, proteger tus datos y proteger tu app de usuarios maliciosos.
Comprende el lenguaje Firebase Security Rules
Antes de comenzar a escribir reglas, vale la pena tomarse un tiempo para revisar el lenguaje Firebase Security Rules específico de los productos de Firebase que usas.
Cloud Storage aprovecha un superconjunto de Common Expression Language (CEL) que se basa en las declaraciones match
y allow
que establecen una condición para el acceso en una ruta de acceso definida.
Primero aprende la sintaxis básica del lenguaje Firebase Security Rules.
Configurar Authentication
Si aún no lo hiciste, agrega Firebase Authentication a tu app. Firebase Authentication admite muchos métodos de autenticación comunes y se integra en Firebase Security Rules para proporcionar funciones de verificación integrales.
Puedes configurar información de autenticación adicional y personalizada para tu app.
Más información sobre Firebase Security Rules y Firebase Authentication.
Define tus estructuras de datos y reglas
La forma en que estructures tus datos podría afectar la forma en que estructurarás y también implementarás tus reglas. A medida que definas tus estructuras de datos, considera las implicaciones que pueden tener en tu estructura de Rules.
Por ejemplo, en Cloud Storage, es posible que quieras incluir un campo que denota un rol específico para cada usuario. Luego, tus reglas pueden leerlo y usarlo para otorgar acceso basado en funciones. También puedes crear una base de datos de Cloud Firestore, almacenar criterios de acceso en documentos de Cloud Firestore y acceder a ellos desde Cloud Storage Security Rules.
Cuando definas tus arquitecturas de datos y reglas, ten en cuenta la manera en que las reglas se transmiten en cascada o no, según el producto. Con Realtime Database, las reglas funcionan de arriba hacia abajo, y las reglas más superficiales anulan las más profundas. Si una regla otorga permisos de lectura o escritura a una ruta de acceso específica, también otorga acceso a todos los nodos secundarios que se encuentran en ella. En cambio, con Cloud Firestore y Cloud Storage, las reglas se aplican solo a los niveles especificados de la jerarquía de datos, y debes escribir reglas explícitas para controlar el acceso a diferentes niveles.
Accede a tus reglas
Para ver tu Rules existente, usa la CLI de Firebase o la consola de Firebase. Asegúrate de editar tus reglas con el mismo método, de manera consistente, para evitar reemplazar las actualizaciones por error. Si no estás seguro de si tus reglas definidas de forma local reflejan las actualizaciones más recientes, la consola de Firebase siempre muestra la versión implementada más recientemente de tus reglas de seguridad de Firebase Security Rules.
Para acceder a tus reglas desde la consola de FirebaseFirebase, selecciona tu proyecto y, luego, en haz clic en Almacenamiento en el panel de navegación izquierdo. Haz clic en Rules una vez que estés en la base de datos o el bucket de almacenamiento correcto.
Para acceder a tus reglas desde la CLI de Firebase CLI, dirígete al archivo de reglas anotado en el archivo firebase.json.
Escribe reglas básicas
A medida que desarrollas tu app y comprendes Rules, te recomendamos que implementes Rules para abordar algunos casos de uso básicos, incluidos los siguientes:
- Solo propietario del contenido: Restringe el acceso al contenido por usuario.
- Acceso mixto: Restringe el acceso de escritura por usuario, pero permite el acceso de lectura público.
- Acceso basado en atributos: Restringe el acceso a un grupo o tipo de usuario.
Prueba tus reglas
Si configuras tu Firebase Security Rules en la consola de Firebase, puedes usar el Zona de pruebas de reglas de Firebase para validar con rapidez el comportamiento de tu modelo. Sin embargo, te recomendamos realizar pruebas más exhaustivas con Local Emulator Suite antes de implementar los cambios en la producción.
Implementa las reglas
Usa la consola de Firebase o la CLI de Firebase para implementar tus reglas en producción. Sigue los pasos que se describen en Administra e implementa Firebase Security Rules.