Za pomocą Uwierzytelniania Firebase możesz tworzyć tymczasowe konta anonimowe i używać ich do uwierzytelniania w Firebase. Te tymczasowe anonimowe konta mogą służyć do umożliwienia użytkownikom, którzy nie zarejestrowali się jeszcze w Twojej aplikacji, pracy z danymi chronionymi przez reguły bezpieczeństwa. Jeśli anonimowy użytkownik zdecyduje się zarejestrować w Twojej aplikacji, możesz połączyć jego poświadczenia logowania z anonimowym kontem , aby mógł kontynuować pracę z chronionymi danymi w przyszłych sesjach.
Zanim zaczniesz
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 pozycji Plik > Dodaj pakiety .
- Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
- Wybierz bibliotekę Uwierzytelniania Firebase.
- Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie twoich zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Następnie wykonaj kilka czynności konfiguracyjnych:
- Jeśli aplikacja nie została jeszcze połączona z projektem Firebase, zrób to z konsoli Firebase .
- Włącz uwierzytelnianie anonimowe:
- W konsoli Firebase otwórz sekcję Auth .
- Na stronie Metody logowania włącz metodę logowania anonimowego .
Uwierzytelnij się anonimowo w Firebase
Gdy wylogowany użytkownik korzysta z funkcji aplikacji wymagającej uwierzytelnienia w Firebase, zaloguj się anonimowo, wykonując następujące czynności:
- Zaimportuj moduł
FirebaseCore
do swojegoUIApplicationDelegate
, a także wszelkie inne moduły Firebase używane przez delegata aplikacji. Na przykład, aby użyć Cloud Firestore i uwierzytelniania:Szybki
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Cel C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Skonfiguruj współużytkowane wystąpienie
FirebaseApp
, zwykle w inicjatorzeApp
lub w metodzieapplication(_:didFinishLaunchingWithOptions:)
:Szybki
// Use Firebase library to configure APIs FirebaseApp.configure()
Cel C
// Use Firebase library to configure APIs [FIRApp configure];
- Wywołaj metodę
signInAnonymouslyWithCompletion:
::Szybki
Auth.auth().signInAnonymously { authResult, error in // ... }
Cel C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Jeśli metoda
signInAnonymouslyWithCompletion:
zakończy się bez błędu, możesz pobrać dane konta anonimowego użytkownika z obiektuFIRAuthDataResult
:Szybki
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Cel C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Konwertuj konto anonimowe na konto stałe
Gdy anonimowy użytkownik zarejestruje się w Twojej aplikacji, możesz zezwolić mu na kontynuowanie pracy na nowym koncie — na przykład możesz chcieć, aby elementy dodane przez użytkownika do koszyka przed zarejestrowaniem się były dostępne w nowym koszyk konta. Aby to zrobić, wykonaj następujące czynności:
- Gdy użytkownik się zarejestruje, zakończ proces logowania dla dostawcy uwierzytelniania użytkownika, aż do wywołania jednej z metod
FIRAuth.signInWith
, ale nie w tym. Na przykład uzyskaj token identyfikatora Google użytkownika, token dostępu do Facebooka lub adres e-mail i hasło. Uzyskaj
FIRAuthCredential
dla nowego dostawcy uwierzytelniania:Logowanie przez Google
Szybki
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Cel C
GIDAuthentication *authentication = user.authentication; FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken accessToken:authentication.accessToken];
Nazwa użytkownika Facebook
Szybki
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Cel C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
E-mail-hasło logowania
Szybki
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Cel C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Przekaż obiekt
FIRAuthCredential
do metodylinkWithCredential:completion:
użytkownika logującego się:Szybki
user.link(with: credential) { authResult, error in // ... } }
Cel C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
Jeśli wywołanie linkWithCredential:completion:
powiedzie się, nowe konto użytkownika może uzyskać dostęp do danych Firebase konta anonimowego.
Następne kroki
Teraz, gdy użytkownicy mogą uwierzytelniać się w Firebase, możesz kontrolować ich dostęp do danych w bazie danych Firebase za pomocą reguł Firebase .