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
Jeśli jeszcze tego nie zrobiłeś, wykonaj czynności opisane w przewodniku wprowadzającym .
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();