Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom logowanie się do aplikacji przy użyciu jednej lub większej liczby metod logowania, w tym logowania za pomocą adresu e-mail i hasła oraz federacyjnych dostawców tożsamości, takich jak logowanie przez Google i logowanie przez Facebooka. W tym samouczku zaczniesz korzystać z uwierzytelniania Firebase, pokazując, jak dodać adres e-mail i hasło logowania do swojej aplikacji.
Połącz swoją aplikację z Firebase
- Zainstaluj pakiet SDK Firebase .
- W konsoli Firebase dodaj aplikację do projektu Firebase.
Dodaj uwierzytelnianie Firebase do swojej aplikacji
Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.
- W Xcode, przy otwartym projekcie aplikacji, przejdź do File > Add Packages .
- Po wyświetleniu monitu dodaj repozytorium SDK platform Firebase Apple:
- Wybierz bibliotekę uwierzytelniania Firebase.
- Dodaj flagę
-ObjC
do sekcji Inne flagi linkera w ustawieniach kompilacji celu. - Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie zależności w tle.
https://github.com/firebase/firebase-ios-sdk.git
(Opcjonalnie) Stwórz prototyp i przetestuj za pomocą pakietu Firebase Local Emulator Suite
Zanim porozmawiamy o tym, jak Twoja aplikacja uwierzytelnia użytkowników, przedstawmy zestaw narzędzi, których możesz użyć do prototypowania i testowania funkcjonalności uwierzytelniania: Firebase Local Emulator Suite. Jeśli decydujesz pomiędzy technikami uwierzytelniania i dostawcami, wypróbowujesz różne modele danych z danymi publicznymi i prywatnymi przy użyciu reguł uwierzytelniania i zabezpieczeń Firebase lub tworzysz prototypy projektów interfejsu użytkownika logowania, możliwość pracy lokalnej bez wdrażania usług na żywo może być świetnym pomysłem .
Emulator uwierzytelniania jest częścią pakietu Local Emulator Suite, który umożliwia interakcję aplikacji z zawartością i konfiguracją emulowanej bazy danych, a także opcjonalnie z emulowanymi zasobami projektu (funkcjami, innymi bazami danych i regułami bezpieczeństwa).
Korzystanie z emulatora uwierzytelniania obejmuje tylko kilka kroków:
- Dodanie wiersza kodu do konfiguracji testowej aplikacji w celu nawiązania połączenia z emulatorem.
- Z katalogu głównego lokalnego katalogu projektu uruchom
firebase emulators:start
. - Używanie interfejsu użytkownika pakietu lokalnego emulatora do interaktywnego prototypowania lub interfejsu API REST emulatora uwierzytelniania do testowania nieinteraktywnego.
Szczegółowy przewodnik jest dostępny na stronie Połącz aplikację z emulatorem uwierzytelniania . Aby uzyskać więcej informacji, zobacz wprowadzenie do pakietu emulatorów lokalnych .
Przejdźmy teraz do sposobu uwierzytelniania użytkowników.
Zainicjuj zestaw SDK Firebase
W delegacie aplikacji najpierw zaimportuj pakiet SDK Firebase:
Szybki
import FirebaseCore
Cel C
@import FirebaseCore;
Następnie w application:didFinishLaunchingWithOptions:
zainicjuj obiekt FirebaseApp
:
Szybki
// Use Firebase library to configure APIs
FirebaseApp.configure()
Cel C
// Use Firebase library to configure APIs
[FIRApp configure];
Nasłuchuj stanu uwierzytelnienia
Dla każdego widoku aplikacji, który wymaga informacji o zalogowanym użytkowniku, dołącz odbiornik do obiektu FIRAuth
. Ten odbiornik jest wywoływany za każdym razem, gdy zmienia się stan logowania użytkownika.
Dołącz odbiornik do metody viewWillAppear
kontrolera widoku:
Szybki
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Cel C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
I odłącz słuchacza w metodzie viewWillDisappear
kontrolera widoku:
Szybki
Auth.auth().removeStateDidChangeListener(handle!)
Cel C
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Zarejestruj nowych użytkowników
Utwórz formularz, który umożliwi nowym użytkownikom zarejestrowanie się w Twojej aplikacji przy użyciu adresu e-mail i hasła. Gdy użytkownik wypełni formularz, zweryfikuj podany przez użytkownika adres e-mail i hasło, a następnie przekaż je do metody createUser
:
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) {
// ...
}];
Zaloguj istniejących użytkowników
Utwórz formularz, który umożliwi istniejącym użytkownikom zalogowanie się przy użyciu adresu e-mail i hasła. Gdy użytkownik wypełni formularz, wywołaj metodę signIn
:
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) {
// ...
}];
Uzyskaj informacje o użytkowniku
Po pomyślnym zalogowaniu się użytkownika możesz uzyskać informacje o nim. Na przykład w odbiorniku stanu uwierzytelnienia :
Szybki
if let user = user {
// The user's ID, unique to the Firebase project.
// Do NOT use this value to authenticate with your backend server,
// if you have one. Use getTokenWithCompletion:completion: instead.
let uid = user.uid
let email = user.email
let photoURL = user.photoURL
var multiFactorString = "MultiFactor: "
for info in user.multiFactor.enrolledFactors {
multiFactorString += info.displayName ?? "[DispayName]"
multiFactorString += " "
}
// ...
}
Cel C
if (user) {
// The user's ID, unique to the Firebase project.
// Do NOT use this value to authenticate with your backend server,
// if you have one. Use getTokenWithCompletion:completion: instead.
NSString *email = user.email;
NSString *uid = user.uid;
NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
[multiFactorString appendString:info.displayName];
[multiFactorString appendString:@" "];
}
NSURL *photoURL = user.photoURL;
// ...
}
Następne kroki
Dowiedz się, jak dodać obsługę innych dostawców tożsamości i anonimowych kont gości:
- Zaloguj się przez Google
- Nazwa użytkownika Facebook
- Zaloguj się na Twitterze
- Zaloguj się do GitHuba
- Logowanie anonimowe