Uwierzytelnianie Firebase umożliwia tworzenie tymczasowych anonimowych kont i korzystanie z nich aby uwierzytelnić się w Firebase. Te tymczasowe anonimowe konta mogą być używane do: zezwalaj użytkownikom, którzy nie zarejestrowali się jeszcze w Twojej aplikacji, na korzystanie z danych chronionych zgodnie z regułami zabezpieczeń. Jeśli anonimowy użytkownik zdecyduje się zarejestrować w Twojej aplikacji, możesz powiązać dane logowania z anonimowymi zasobami, konta, aby mogły nadal korzystać ze swoich danych chronionych kolejnych sesji.
Zanim zaczniesz
-
Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.
- W Xcode po otwarciu projektu aplikacji przejdź do File > Dodaj pakiety.
- Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
- Wybierz bibliotekę uwierzytelniania Firebase.
- Dodaj flagę
-ObjC
do sekcji Inne flagi łączące w ustawieniach kompilacji celu. - Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.
https://github.com/firebase/firebase-ios-sdk.git
- Jeśli Twoja aplikacja nie jest jeszcze połączona z projektem Firebase, zrób to na stronie w konsoli Firebase.
- Włącz anonimowe uwierzytelnianie:
- W konsoli Firebase otwórz sekcję Uwierzytelnianie.
- Na stronie Sign-in Methods (Metody logowania) włącz Anonimowe metody logowania się.
- Opcjonalnie: jeśli Twój projekt został uaktualniony do wersji Uwierzytelnianie Firebase na platformie Identity Platform, możesz włączyć automatyczne czyszczenie. Kiedy jeśli włączysz to ustawienie, anonimowe konta starsze niż 30 dni będą automatycznie Usunięto. W projektach z włączonym automatycznym czyszczeniem anonimowe uwierzytelnianie nie będzie nie są już wliczane do limitów wykorzystania ani limitów rozliczeniowych. Zobacz Czyszczenie automatyczne.
Uwierzytelniaj anonimowo w Firebase
Gdy wylogowany użytkownik używa funkcji aplikacji, która wymaga uwierzytelnienia za pomocą Zaloguj się anonimowo w Firebase, wykonując te czynności:
- Zaimportuj moduł
FirebaseCore
doUIApplicationDelegate
, jak i wszelkie inne Moduły Firebase używane przez przedstawiciela aplikacji. Aby na przykład użyć Cloud Firestore i Uwierzytelniania:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Skonfiguruj
FirebaseApp
współdzielonej instancji w uprawnieniach przedstawiciela aplikacji Metodaapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Jeśli używasz SwiftUI, musisz utworzyć i dołączyć przedstawiciela aplikacji.
do struktury
App
za pomocąUIApplicationDelegateAdaptor
lubNSApplicationDelegateAdaptor
Musisz też wyłączyć przełączanie przekazywania dostępu do aplikacji. Dla: więcej informacji znajdziesz w instrukcjach SwiftUI.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Wywołaj metodę
signInAnonymouslyWithCompletion:
:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Jeśli zakończy się działanie metody
signInAnonymouslyWithCompletion:
bez błędu, można pobrać dane anonimowego konta użytkownika z ObiektFIRAuthDataResult
:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Przekształcanie konta anonimowego w konto stałe
Gdy anonimowy użytkownik zarejestruje się w Twojej aplikacji, możesz mu na to zezwolić kontynuowanie pracy na nowym koncie – np. Dodawaj produkty do koszyka, zanim użytkownik się zarejestrował dostępnych w koszyku na zakupy nowego konta. W tym celu wykonaj następujące czynności: kroki:
- Gdy użytkownik się zarejestruje, dokończ proces logowania na stronie
do dostawcy uwierzytelniania do
wywołania jednego z
FIRAuth.signInWith
. Na przykład pobierz token identyfikatora Google użytkownika, Token dostępu Facebooka lub adres e-mail i hasło. Pobierz
FIRAuthCredential
dla nowego dostawcy uwierzytelniania:Logowanie przez Google
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Logowanie do Facebooka
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Logowanie się za pomocą adresu e-mail
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Przekaż obiekt
FIRAuthCredential
do folderu zalogowanego użytkownika MetodalinkWithCredential:completion:
:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
Jeśli wywołanie linkWithCredential:completion:
się powiedzie, nowe konto użytkownika będzie mogło
uzyskać dostęp do danych Firebase anonimowego konta.
Czyszczenie automatyczne
Po przeniesieniu projektu do Uwierzytelniania Firebase na platformie Identity Platform możesz: włącz automatyczne czyszczenie w konsoli Firebase. Po włączeniu tej funkcji zezwalasz Firebase automatycznie usuwa anonimowe konta starsze niż 30 dni. W projektach z automatyczną włączone czyszczenie danych, anonimowe uwierzytelnianie nie jest wliczane do limitów wykorzystania ani limitów płatności.
- Wszystkie anonimowe konta utworzone po włączeniu automatycznego czyszczenia mogą zostać automatycznie można usunąć w dowolnym momencie po 30 dniach od utworzenia.
- Istniejące anonimowe konta będą mogły zostać automatycznie usunięte po 30 dniach włączenie automatycznego czyszczenia.
- Jeśli wyłączysz automatyczne czyszczenie, wszystkie anonimowe konta przeznaczone do usunięcia pozostaną aktywne. do usunięcia.
- Po przejściu na nową wersję anonimowe konto, łącząc je z dowolną metodą logowania, nie zostaną automatycznie usunięte.
Jeśli chcesz sprawdzić, ilu użytkowników wpłynie na to, zanim włączysz tę funkcję i
uaktualnił swój projekt do Uwierzytelniania Firebase z Identity Platform, możesz filtrować według tych kryteriów
is_anon
w Google Cloud
Logowanie.
Dalsze kroki
Teraz, gdy użytkownicy mogą uwierzytelniać się w Firebase, możesz kontrolować ich dostęp do w bazie danych Firebase za pomocą Reguły Firebase.