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

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

Antes de que empieces

  1. Si aún no lo has hecho, sigue los pasos de la guía de introducción .

  2. Habilite el inicio de sesión por correo electrónico/contraseña:

    • En la sección Autenticación de Firebase console, abre 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 por 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);
}

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

Si la nueva cuenta se creó correctamente, 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 de la creación de una nueva cuenta, puede verificar la dirección de correo electrónico del usuario .

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

Los pasos para iniciar sesión como usuario con una 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 utilizó el usuario.

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

En las reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión a partir 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();