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 lo hai già fatto, segui i passaggi nella Guida introduttiva.

  2. Abilita l'accesso con email/password:

    • Nella sezione Autenticazione della console Firebase, apri la sezione Metodo di accesso .
    • Nella pagina Metodo di accesso, abilita il metodo Accesso tramite email/password e fai clic su Salva.

Creare un account basato su password

Per creare un nuovo account utente con una password, chiama il metodo 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, devi eseguire questa operazione dalla schermata di registrazione dell'app. Quando un nuovo utente utilizzando il modulo di registrazione dell'app, completando qualsiasi 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, anche l'utente ha 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.

Eseguire l'accesso di un utente con indirizzo email e 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 ottenere le informazioni di base del profilo dell'utente dal User oggetto. Vedi Gestire gli utenti.

Nelle regole di sicurezza di Firebase Realtime Database e Cloud Storage, puoi recuperare l'ID utente univoco dell'utente che ha eseguito l'accesso dalla variabile auth e utilizzarlo 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 disconnettere un utente, chiama signOut():

await FirebaseAuth.instance.signOut();