Cómo implementar autenticación de usuarios y restringir accesos en Firestore con reglas de seguridad.
La autenticación de usuarios es uno de los pilares fundamentales en el desarrollo de aplicaciones seguras. Firebase Authentication nos permite registrar e identificar usuarios de forma sencilla, y Cloud Firestore nos permite controlar quién puede acceder, leer o escribir datos mediante reglas de seguridad.
En este artículo aprenderás cómo implementar un sistema de autenticación de usuarios en Flutter usando Firebase Auth y cómo configurar reglas de seguridad en Firestore para restringir el acceso a los datos solo a los usuarios autorizados.
🎯 ¿Qué vas a lograr?
-
Autenticación de usuarios con correo y contraseña
-
Reglas de Firestore para proteger la información por usuario
-
Mostrar datos sólo al usuario que los creó
🚀 Paso 1: Activar el método de autenticación en Firebase
-
Selecciona tu proyecto
-
Navega a Authentication > Métodos de inicio de sesión
-
Activa el método “Correo electrónico y contraseña”
📦 Paso 2: Agregar firebase_auth en pubspec.yaml
Agrega estas dependencias:
Luego ejecuta:
flutter pub get
🧩 Paso 3: Crear funciones de registro e inicio de sesión
import 'package:firebase_auth/firebase_auth.dart';
🧠 Bonus: Para cerrar sesión
await FirebaseAuth.instance.signOut();
🔥 Paso 4: Guardar datos asociados al usuario
Cuando guardes datos en Firestore, incluye el UID del usuario autenticado:
🛡 Paso 5: Configurar reglas de seguridad en Firestore
Ve a Firebase Console > Firestore Database > Reglas y reemplaza con lo siguiente:
📌 ¿Qué hacen estas reglas?
-
Solo permiten leer y escribir documentos si el usuario está autenticado (request.auth != null)
-
El usuario solo puede acceder a documentos donde el campo uid coincida con su propio UID
🔍 Validación en la app
Al mostrar los datos en tu app, filtra por el UID:
final user = FirebaseAuth.instance.currentUser;
🎉 Conclusión
¡Listo! Ya tienes una aplicación Flutter que permite a los usuarios autenticarse y acceder solo a sus propios datos en Firestore, protegidos por reglas de seguridad. Esta arquitectura es ideal para cualquier aplicación que maneje datos sensibles como notas personales, tareas, historial, etc.
Comentarios
Publicar un comentario