Za pomocą Uwierzytelniania Firebase możesz tworzyć i używać tymczasowych anonimowych kont do uwierzytelniania w Firebase. Te tymczasowe konta anonimowe mogą służyć do umożliwienia użytkownikom, którzy jeszcze nie zarejestrowali się 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
- 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 anonimowe uwierzytelnianie:
- 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, która wymaga uwierzytelnienia w Firebase, zaloguj się anonimowo, wykonując 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];
- 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;
Zamień konto anonimowe w konto stałe
Gdy anonimowy użytkownik zarejestruje się w Twojej aplikacji, możesz pozwolić mu kontynuować pracę na nowym koncie - na przykład możesz chcieć, aby produkty, które użytkownik dodał do koszyka przed zarejestrowaniem się, były dostępne w nowym koszyk na koncie. Aby to zrobić, wykonaj następujące czynności:
- Gdy użytkownik się zarejestruje, należy zakończyć proces logowania dla dostawcy uwierzytelniania użytkownika, ale nie obejmuje wywołania jednej z metod
FIRAuth.signInWith
. Na przykład uzyskaj token Google ID 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 else { return } let credential = GoogleAuthProvider.credential(withIDToken: authentication.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];
Logowanie za pomocą hasła e-mail
Szybki
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Cel C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Przekaż obiekt
FIRAuthCredential
doFIRAuthCredential
logowania użytkownikalinkWithCredential:completion:
method: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 anonimowego konta.
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 .