Saltar al contenido

Lección 12 de 16 · Lectura y práctica

Integración con Firebase Firestore

Practica integración con firebase firestore con un ejemplo resuelto, un ejercicio y una infografía.

Del concepto a la práctica

Taller de esta lección

Firestore introduce una colección remota cuyos documentos deben tener una identidad y reglas de acceso coherentes. La aplicación no debe confiar en que ocultar una pantalla proteja los datos: la autorización se decide en el backend configurado, mientras el cliente representa permisos y errores.

Ejemplo resuelto

Una colección tasks contiene el documento u7_t1 con ownerId: u7, title: Preparar agenda y done: false. Una lectura directa de ese documento autenticada como u7 puede obtenerlo; la misma lectura como u8 debe ser rechazada. El cliente muestra el documento para u7 y un error de acceso para u8.

En el emulador de laboratorio, define que get y list solo se permitan cuando request.auth != null y resource.data.ownerId == request.auth.uid. Para crear, compara el propietario nuevo (request.resource.data.ownerId) con el UID autenticado; para actualizar, exige además que el propietario anterior y el nuevo sean iguales. Valida título y estado según el contrato. La consulta del cliente debe incluir where("ownerId", isEqualTo: uid). Prueba también un cambio de propietario y una lectura sin sesión: ambos deben ser rechazados.

Pruébalo

  1. Define dos usuarios de prueba, u7 y u8.

  2. Crea el documento con propietario u7.

  3. Simula lecturas autenticadas por ambos usuarios.

  4. Registra contenido o error, sin ocultar el motivo.

Error frecuente: filtrar por ownerId solo después de descargar datos. Corrígelo aplicando la condición en la consulta y en las reglas autorizadas.

Comprueba tu resultado

u7 debe obtener exactamente Preparar agenda; la lectura directa de u8 debe obtener permission-denied. Una consulta separada con ownerId == u8 puede estar autorizada y devolver cero documentos; las reglas no filtran silenciosamente resultados ajenos. No debe aparecer el documento ajeno en memoria ni en la interfaz.

Capas de acceso, actualización, copias y respuesta a incidentes alrededor de un sistema.
CursaloMapa de práctica
La seguridad necesita varias capas

El control de acceso, las actualizaciones y las copias de seguridad cubren riesgos distintos. Una alerta necesita un procedimiento de respuesta para contener y recuperar el servicio. Varias capas reducen la exposición, pero ninguna garantiza seguridad absoluta.

Ver la infografía en tamaño completo ↗
Fuentes para profundizar

Sigue con Desarrollo de Apps Móviles con Flutter - Nivel Intermedio

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.