Ejemplos de reglas de seguridad de Firebase

Ejemplos de reglas de seguridad de Firebase: Firestore, Storage, RTDB | We.Inc

Reglas de seguridad de Firebase para copiar: datos solo del propietario, lectura pública, roles de administrador y validación en Firestore, Storage y Realtime Database, y cómo probarlas.

Ejemplos de reglas de seguridad de Firebase

Las reglas de seguridad de Firebase deciden quién puede leer y escribir cada dato de tu app. Empieza cada archivo de Firestore con rules_version = '2', permite el acceso solo cuando request.auth exista, compara request.auth.uid con el propietario del documento y revisa los campos entrantes con request.resource.data. Prueba con el emulador antes de desplegar.

Las variables que más usas en cada producto

Si tu app, tienda o área de miembros guarda datos en Firebase, las reglas son lo único que separa los registros de tus clientes de cualquiera que tenga la configuración pública de tu proyecto. Las recetas de abajo cubren los casos que necesitan la mayoría de las apps pequeñas. Filtra por producto, copia una y cambia los nombres de las colecciones por los tuyos.

Preguntas frecuentes

¿Qué es el modo de prueba de Firestore?

Una de las dos opciones iniciales al crear una base de datos. Firebase describe el modo de prueba como útil para empezar, pero advierte que permite a cualquiera leer y sobrescribir tus datos. El modo de producción deniega todas las lecturas y escrituras de clientes móviles y web hasta que escribas reglas.

¿Por qué mi app empezó de repente a dar errores de permiso denegado?

Busca una condición que compare request.time con una fecha fija, como request.time < timestamp.date(2026, 11, 1). Cuando pasa esa fecha, todas las peticiones fallan. Sustitúyela por reglas reales en lugar de mover la fecha.

¿Cuántas llamadas a get() puede hacer una regla?

Firebase documenta un límite de 10 llamadas de acceso a documentos para peticiones y consultas de un solo documento, y de 20 para lecturas de varios documentos, transacciones y escrituras por lotes. Si lo superas, obtienes un error de permiso denegado.

¿Las reglas de seguridad se aplican a mi código de servidor?

No. Las reglas protegen las peticiones de clientes móviles y web. Firebase indica que las bibliotecas de cliente de servidor se saltan todas las Cloud Firestore Security Rules, así que valida las entradas en tu código de servidor por separado.

¿Cómo pruebo las reglas sin tocar datos reales?

Inicia el emulador con firebase emulators:start --only firestore y escribe pruebas con el paquete @firebase/rules-unit-testing, usando assertSucceeds y assertFails para las acciones permitidas y bloqueadas.

Cómo se lee una regla

Roles sin backend

Reglas que debes quitar antes del lanzamiento

Estos patrones aparecen en proyectos de inicio y tutoriales. Todos dejan los datos expuestos.

Reglas arriesgadas y alternativas más seguras

Probar las reglas con el emulador

Ejecuta el emulador de Firestore y comprueba que el propietario puede escribir y un desconocido no.

Prueba unitaria de reglas con @firebase/rules-unit-testing

Usa un id de proyecto de demostración para que nada llegue a una base de datos real. Ejecútala mientras firebase emulators:start --only firestore está en marcha.

Perfiles solo para el propietario

Cada usuario lee y edita solo el documento cuyo id coincide con su id de usuario.

Lectura pública, escritura de admin

Cualquiera puede leer el catálogo de productos; solo los usuarios cuyo perfil tiene el rol admin pueden cambiarlo.

Validar pedidos nuevos

Un cliente solo puede crear un pedido para sí mismo, con un total positivo y un estado conocido, y no puede editarlo después.

Los usuarios no pueden cambiar su propio rol

Las ediciones del perfil solo se permiten cuando el campo role se queda exactamente igual.

Los usuarios suben sus propias imágenes de menos de 5MB

Los archivos van en la carpeta de cada usuario; las subidas deben ser imágenes de menos de 5MB, y cualquiera con sesión iniciada puede verlas.

Datos solo del propietario con validación

Las reglas de Realtime Database son JSON. $uid captura la clave; newData es el valor que se escribe.

Recetas de reglas

Mostrar recetas de

Todos los productos

Cloud Firestore

Cloud Storage

Realtime Database

{n} recetas mostradas

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio