Uwierzytelnij się w Firebase za pomocą kont opartych na hasłach na Flutter

Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom uwierzytelnianie się w Firebase przy użyciu adresów e-mail i haseł.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, wykonaj czynności opisane w przewodniku Wprowadzenie.

  2. Włącz logowanie przez e-mail/hasło:

    • W sekcji Uwierzytelnianie konsoli Firebase otwórz stronę Metoda logowania .
    • Na stronie Metoda logowania włącz metodę logowania przez e-mail/hasło i kliknij Zapisz .

Utwórz konto oparte na haśle

Aby utworzyć nowe konto użytkownika z hasłem, wywołaj metodę 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);
}

Zazwyczaj robisz to z poziomu ekranu rejestracji swojej aplikacji. Gdy nowy użytkownik zarejestruje się za pomocą formularza rejestracji Twojej aplikacji, wykonaj wszystkie nowe kroki weryfikacji konta wymagane przez aplikację, takie jak sprawdzenie, czy hasło do nowego konta zostało poprawnie wpisane i spełnia Twoje wymagania dotyczące złożoności.

Jeśli nowe konto zostało pomyślnie utworzone, użytkownik jest również zalogowany. Jeśli nasłuchujesz zmian w stanie uwierzytelniania , do słuchaczy zostanie wysłane nowe zdarzenie.

W ramach kontynuacji tworzenia nowego konta możesz zweryfikować adres e-mail użytkownika .

Zaloguj się użytkownika za pomocą adresu e-mail i hasła

Czynności dotyczące logowania użytkownika za pomocą hasła są podobne do czynności związanych z tworzeniem nowego konta. Na ekranie logowania Twojej aplikacji wywołaj 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.');
  }
}

Następne kroki

Gdy użytkownik utworzy nowe konto, jest ono przechowywane jako część projektu Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od użytej metody logowania.

W swoich aplikacjach możesz uzyskać podstawowe informacje o profilu użytkownika z obiektu User . Zobacz Zarządzanie użytkownikami .

W regułach bezpieczeństwa bazy danych czasu rzeczywistego i usługi Cloud Storage Firebase możesz uzyskać unikalny identyfikator zalogowanego użytkownika ze zmiennej auth i używać go do kontrolowania, do jakich danych użytkownik może uzyskać dostęp.

Możesz zezwolić użytkownikom na logowanie się do Twojej aplikacji przy użyciu wielu dostawców uwierzytelniania, łącząc poświadczenia dostawcy uwierzytelniania ) z istniejącym kontem użytkownika.

Aby wylogować użytkownika, wywołaj signOut() :

await FirebaseAuth.instance.signOut();