Descubre las novedades de Firebase en Google I/O 2022. Más información

Autenticarse con Firebase usando cuentas basadas en contraseña en Flutter

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puede usar Firebase Authentication para permitir que sus usuarios se autentiquen con Firebase usando direcciones de correo electrónico y contraseñas.

Antes de que empieces

  1. Si aún no lo ha hecho, siga los pasos de la guía de inicio .

  2. Habilitar inicio de sesión con correo electrónico/contraseña:

    • En la sección Autenticación de la consola Firebase, abra la página Método de inicio de sesión .
    • En la página Método de inicio de sesión , habilite el método de inicio de sesión con correo electrónico/contraseña y haga clic en Guardar .

Crear una cuenta basada en contraseña

Para crear una nueva cuenta de usuario con una contraseña, llame al método createUserWithEmailAndPassword() :

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

Por lo general, haría esto desde la pantalla de registro de su aplicación. Cuando un nuevo usuario se registre mediante el formulario de registro de su aplicación, complete todos los pasos de validación de la nueva cuenta que requiera su aplicación, como verificar que la contraseña de la nueva cuenta se haya ingresado correctamente y cumpla con sus requisitos de complejidad.

Si la nueva cuenta se creó con éxito, el usuario también inició sesión. Si está escuchando cambios en el estado de autenticación , se enviará un nuevo evento a sus oyentes.

Como seguimiento a la creación de una nueva cuenta, puede Verificar la dirección de correo electrónico del usuario .

Inicie sesión como usuario con una dirección de correo electrónico y una contraseña

Los pasos para iniciar sesión como usuario con contraseña son similares a los pasos para crear una cuenta nueva. Desde la pantalla de inicio de sesión de su aplicación, llame a signInWithEmailAndPassword() :

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

Próximos pasos

Después de que un usuario crea una nueva cuenta, esta cuenta se almacena como parte de su proyecto de Firebase y se puede usar para identificar a un usuario en cada aplicación de su proyecto, independientemente del método de inicio de sesión que haya usado el usuario.

En sus aplicaciones, puede obtener la información básica del perfil del User del objeto Usuario. Consulte Administrar usuarios .

En sus Reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión de la variable auth y usarlo para controlar a qué datos puede acceder un usuario.

Puede permitir que los usuarios inicien sesión en su aplicación utilizando varios proveedores de autenticación vinculando las credenciales del proveedor de autenticación a una cuenta de usuario existente.

Para cerrar la sesión de un usuario, llame signOut() :

await FirebaseAuth.instance.signOut();