Możesz użyć Uwierzytelniania Firebase, aby umożliwić swoim użytkownikom uwierzytelnianie w Firebase przy użyciu ich adresów e-mail i haseł, a także zarządzać kontami aplikacji opartymi na hasłach.
Zanim zaczniesz
- Dodaj Firebase do swojego projektu na iOS . Uwzględnij następujące pody w swoim
Podfile
:pod 'Firebase/Auth'
- Jeśli nie połączyłeś jeszcze swojej aplikacji z projektem Firebase, zrób to z konsoli Firebase .
- Włącz logowanie za pomocą adresu e-mail / hasła:
- W konsoli Firebase otwórz sekcję Auth .
- Na karcie Metoda logowania włącz metodę logowania e- mail / hasło i kliknij przycisk Zapisz .
Utwórz konto oparte na haśle
Aby utworzyć nowe konto użytkownika z hasłem, wykonaj następujące kroki podczas logowania w aplikacji:
- Zaimportuj moduł
UIApplicationDelegate
:Szybki
import Firebase
Cel C
@import Firebase;
- Skonfiguruj
FirebaseApp
wspólne wystąpienie, zazwyczaj w swojej aplikacjiapplication:didFinishLaunchingWithOptions:
metodę:Szybki
// Use Firebase library to configure APIs FirebaseApp.configure()
Cel C
// Use Firebase library to configure APIs [FIRApp configure];
- Gdy nowy użytkownik rejestruje się przy użyciu formularza rejestracyjnego 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.
- Utwórz nowe konto, przekazując adres e-mail i hasło nowego użytkownika do
createUserWithEmail:email:password:completion:
Jeśli nowe konto zostało pomyślnie utworzone, użytkownik jest zalogowany i można uzyskać dane konta użytkownika z obiektu wynikowego, który jest przekazywany do metody wywołania zwrotnego.Szybki
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
Cel C
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Zarejestruj użytkownika za pomocą adresu e-mail i hasła
Kroki logowania użytkownika przy użyciu hasła są podobne do czynności tworzenia nowego konta. W aktywności związanej z logowaniem się do aplikacji wykonaj następujące czynności:
- Zaimportuj moduł
UIApplicationDelegate
:Szybki
import Firebase
Cel C
@import Firebase;
- Skonfiguruj
FirebaseApp
wspólne wystąpienie, zazwyczaj w swojej aplikacjiapplication:didFinishLaunchingWithOptions:
metodę:Szybki
// Use Firebase library to configure APIs FirebaseApp.configure()
Cel C
// Use Firebase library to configure APIs [FIRApp configure];
- Gdy użytkownik zaloguje się do Twojej aplikacji, przekaż jego adres e-mail i hasło do
signInWithEmail:email:password:completion:
Jeśli użytkownik pomyślnie się zaloguje, możesz pobrać dane konta użytkownika z obiektu wynikowego, który jest przekazywany do metody wywołania zwrotnego.Szybki
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in guard let strongSelf = self else { return } // ... }
Cel C
[[FIRAuth auth] signInWithEmail:self->_emailField.text password:self->_passwordField.text completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Następne kroki
Gdy użytkownik loguje się po raz pierwszy, tworzone jest nowe konto użytkownika i jest ono łączone z poświadczeniami - czyli nazwą użytkownika i hasłem, numerem telefonu lub informacjami dostawcy uwierzytelniania - zalogowanym użytkownikiem. To nowe konto jest przechowywane jako część projektu Firebase i może służyć do identyfikacji użytkownika we wszystkich aplikacjach w Twoim projekcie, niezależnie od tego, w jaki sposób się on loguje.
W swoich aplikacjach możesz uzyskać podstawowe informacje o profilu użytkownika z obiektu
FIRUser
. Zobacz Zarządzanie użytkownikami .W swoich regułach bezpieczeństwa Firebase Realtime Database 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 ma dostęp.
Możesz zezwolić użytkownikom na logowanie się do 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:
Szybki
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print ("Error signing out: %@", signOutError) }
Cel C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
Możesz także dodać kod obsługi błędów dla pełnego zakresu błędów uwierzytelniania. Zobacz Obsługa błędów .