Uwierzytelnij się w Firebase, korzystając z kont opartych na hasłach w Flutter

Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom uwierzytelnianie 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 wprowadzającym .

  2. Włącz logowanie za pomocą adresu e-mail/hasła:

    • W sekcji Uwierzytelnianie konsoli Firebase otwórz stronę Metoda logowania .
    • Na stronie Metoda logowania włącz metodę logowania za pomocą adresu e-mail/hasła 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);
}

Zwykle robisz to na ekranie rejestracji aplikacji. Gdy nowy użytkownik zarejestruje się za pomocą formularza rejestracji w Twojej aplikacji, wykonaj wszystkie kroki weryfikacji nowego konta wymagane przez aplikację, np. sprawdź, 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 utworzone pomyślnie, użytkownik jest również zalogowany. Jeśli nasłuchujesz zmian w stanie uwierzytelnienia , do Twoich słuchaczy zostanie wysłane nowe zdarzenie.

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

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

Kroki logowania użytkownika za pomocą hasła są podobne do kroków tworzenia nowego konta. Na ekranie logowania 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 metody logowania, której użył użytkownik.

W Twoich 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 Firebase Realtime i Cloud Storage możesz uzyskać unikalny identyfikator zalogowanego użytkownika ze zmiennej auth i użyć go do kontrolowania, do jakich danych użytkownik może uzyskać dostęp.

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

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

await FirebaseAuth.instance.signOut();