Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Uwierzytelnij się anonimowo w Firebase na iOS

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

  1. Dodaj Firebase do swojego projektu na iOS .
  2. Uwzględnij następujące pody w swoim Podfile :
    pod 'Firebase/Auth'
    
  3. Jeśli nie połączyłeś jeszcze swojej aplikacji z projektem Firebase, zrób to z konsoli Firebase .
  4. Włącz anonimowe uwierzytelnianie:
    1. W konsoli Firebase otwórz sekcję Auth .
    2. 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:

  1. Zaimportuj moduł UIApplicationDelegate :

    Szybki

    import Firebase

    Cel C

    @import Firebase;
  2. Skonfiguruj FirebaseApp wspólne wystąpienie, zazwyczaj w swojej aplikacji application:didFinishLaunchingWithOptions: metodę:

    Szybki

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Cel C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Wywołaj metodę signInAnonymouslyWithCompletion: ::

    Szybki

    Auth.auth().signInAnonymously() { (authResult, error) in
      // ...
    }
    

    Cel C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Jeśli metoda signInAnonymouslyWithCompletion: zakończy się bez błędu, możesz pobrać dane konta anonimowego użytkownika z obiektu FIRAuthDataResult :

    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:

  1. 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.
  2. 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];
    
  3. Przekaż obiekt FIRAuthCredential do FIRAuthCredential logowania użytkownika linkWithCredential: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 .