Esegui l'autenticazione con Firebase utilizzando account basati su password su Flutter

Puoi utilizzare Firebase Authentication per consentire agli utenti di eseguire l'autenticazione con Firebase utilizzando indirizzi email e password.

Prima di iniziare

  1. Se non l'hai ancora fatto, segui i passaggi descritti nella guida Inizia.

  2. Attiva l'accesso con email/password:

    • Nella sezione Autenticazione della console Firebase, apri il Metodo di accesso .
    • Nella pagina Metodo di accesso, attiva l'opzione Accesso con email/password. e fai clic su Salva.

Creare un account basato su password

Per creare un nuovo account utente con una password, chiama il 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);
}

In genere, questa operazione viene eseguita dalla schermata di registrazione dell'app. Quando un nuovo utente utilizzando il modulo di registrazione dell'app, completa una nuova convalida dell'account passaggi richiesti dalla tua app, ad esempio la verifica della password del nuovo account è stato digitato correttamente e soddisfa i requisiti di complessità.

Se il nuovo account è stato creato correttamente, l'utente ha anche eseguito l'accesso. Se monitori le modifiche dello stato di autenticazione, ai tuoi ascoltatori verrà inviato un nuovo evento.

Come follow-up della creazione di un nuovo account, puoi Verifica l'indirizzo email dell'utente.

Accedere a un utente con un indirizzo email e una password

La procedura per accedere a un utente con una password è simile a quella per creando un nuovo account. Dalla schermata di accesso dell'app, chiama 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.');
  }
}

Passaggi successivi

Dopo che un utente crea un nuovo account, questo viene memorizzato come parte del tuo progetto Firebase e può essere utilizzato per identificare un utente in ogni app indipendentemente dal metodo di accesso utilizzato dall'utente.

Nelle tue app, puoi recuperare le informazioni di base del profilo dell'utente dall'oggetto User. Vedi Gestire gli utenti.

In Firebase Realtime Database e regole di sicurezza di Cloud Storage, puoi recupera l'ID utente unico dell'utente che ha eseguito l'accesso dalla variabile auth e utilizzalo per controllare a quali dati può accedere un utente.

Puoi consentire agli utenti di accedere alla tua app utilizzando più autenticazioni di provider collegando le credenziali del provider di autenticazione) a un account utente esistente.

Per scollegare un utente, chiama signOut():

await FirebaseAuth.instance.signOut();