Uwierzytelnianie Firebase umożliwia uwierzytelnianie użytkowników w Firebase za pomocą adresów e-mail i haseł.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobisz, wykonaj czynności opisane w przewodniku Pierwsze kroki.
Włącz w projekcie Firebase logowanie za pomocą adresu e-mail i hasła:
W konsoli Firebase otwórz Zabezpieczenia > Uwierzytelnianie.
Na karcie Metoda logowania włącz dostawcę logowania E-mail/hasło.
Kliknij Zapisz.
Tworzenie konta opartego na hasłach
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 w aplikacji. Gdy nowy użytkownik zarejestruje się za pomocą formularza rejestracji w aplikacji, wykonaj wszystkie kroki weryfikacji nowego konta wymagane przez aplikację, np. sprawdź, czy hasło do nowego konta zostało wpisane prawidłowo i czy spełnia wymagania dotyczące złożoności.
Jeśli nowe konto zostało utworzone, użytkownik jest też zalogowany. Jeśli monitorujesz zmiany stanu uwierzytelniania, do detektorów zostanie wysłane nowe zdarzenie.
Po utworzeniu nowego konta możesz zweryfikować adres e-mail użytkownika.
Logowanie użytkownika za pomocą adresu e-mail i hasła
Czynności związane z logowaniem użytkownika za pomocą hasła są podobne do czynności związanych z tworzeniem nowego konta. Na ekranie logowania w aplikacji wywołaj metodę 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.');
}
}
Dalsze kroki
Gdy użytkownik utworzy nowe konto, zostanie ono zapisane w projekcie Firebase i będzie można go używać do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od metody logowania.
W aplikacjach możesz pobierać podstawowe informacje o profilu użytkownika z obiektu User. Zobacz Zarządzanie użytkownikami.
W regułach bezpieczeństwa bazy danych Firebase Realtime Database i Cloud Storage możesz pobrać unikalny identyfikator zalogowanego użytkownika z zmiennej auth i użyć go do kontrolowania, do jakich danych użytkownik może mieć dostęp.
Możesz zezwolić użytkownikom na logowanie się w aplikacji za pomocą wielu dostawców uwierzytelniania przez łączenie danych logowania dostawcy uwierzytelniania) z istniejącym kontem użytkownika.
Aby wylogować użytkownika, wywołaj metodę signOut():
await FirebaseAuth.instance.signOut();