Las reglas de seguridad de Firebase brindan una protección sólida y completamente personalizable para sus datos en Cloud Firestore, Realtime Database y Cloud Storage. Puede comenzar fácilmente con las reglas siguiendo los pasos de esta guía, asegurando sus datos y protegiendo su aplicación de usuarios malintencionados.
Comprender el lenguaje de las reglas de seguridad de Firebase
Antes de comenzar a escribir reglas, vale la pena tomarse un tiempo para revisar el lenguaje de reglas de seguridad de Firebase específico para los productos de Firebase que está utilizando. Realtime Database aprovecha una sintaxis similar a JavaScript y una estructura JSON para sus reglas.
Empiece por aprender la sintaxis principal del lenguaje de reglas de seguridad de Firebase .
Configurar la autenticación
Si aún no lo has hecho, agrega Firebase Authentication a tu aplicación . Firebase Authentication admite muchos métodos de autenticación comunes y se integra con las reglas de seguridad de Firebase para brindar capacidades de verificación integrales.
Puede configurar información de autenticación personalizada adicional para su aplicación.
Obtenga más información sobre las reglas de seguridad de Firebase y la autenticación de Firebase .
Defina sus estructuras de datos y reglas
Definir datos para seguridad
La forma en que estructura sus datos puede afectar la forma en que estructura e implementa sus reglas. Al definir sus estructuras de datos, considere las implicaciones que podrían tener en su estructura de Reglas.
Por ejemplo, en Realtime Database, es posible que desee incluir un campo que indique una función específica para cada usuario. Luego, sus reglas pueden leer ese campo y usarlo para otorgar acceso basado en roles.
Al definir sus arquitecturas de datos y reglas, tenga en cuenta la forma en que las reglas se conectan en cascada o no, dependiendo de su producto. Con Realtime Database, las reglas funcionan de arriba hacia abajo, y las reglas menos profundas anulan las más profundas. Si una regla otorga permisos de lectura o escritura en una ruta particular, también otorga acceso a todos los nodos secundarios bajo ella. Por el contrario, con Cloud Firestore y Cloud Storage, las reglas se aplican solo en niveles específicos de la jerarquía de datos y usted escribe reglas explícitas para controlar el acceso a diferentes niveles.
Accede a tus reglas
Para ver sus reglas existentes, use Firebase CLI o Firebase console. Asegúrese de editar sus reglas utilizando el mismo método, de manera consistente, para evitar sobrescribir actualizaciones por error. Si no está seguro de si sus reglas definidas localmente reflejan las actualizaciones más recientes, Firebase console siempre muestra la versión implementada más recientemente de sus reglas de seguridad de Firebase.
Para acceder a sus reglas desde Firebase console , seleccione su proyecto y luego, en el panel de navegación de la izquierda, haga clic en Realtime Database . Haga clic en Reglas una vez que esté en la base de datos o depósito de almacenamiento correcto.
Para acceder a sus reglas desde Firebase CLI, vaya al archivo de reglas anotado en su archivo firebase.json .
Escribir reglas básicas
Mientras desarrolla su aplicación y comprende las reglas, intente implementar reglas para abordar algunos casos de uso básicos , incluidos los siguientes:
- Solo propietario del contenido: restringe el acceso al contenido por parte del 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.
Pon a prueba tus reglas
Si estás configurando tus reglas de seguridad de Firebase en Firebase console, puedes usar Firebase Rules Playground para validar rápidamente el comportamiento. Sin embargo, recomendamos realizar pruebas más exhaustivas con Local Emulator Suite antes de implementar los cambios en producción.
Implementar reglas
Utilice Firebase console o Firebase CLI para implementar sus reglas en producción. Siga los pasos descritos en Administrar e implementar reglas de seguridad de Firebase .