Check out what’s new from Firebase at Google I/O 2022. Learn more

Uwierzytelniaj się w Firebase anonimowo na platformach Apple

Można używać uwierzytelniania Firebase tworzyć i wykorzystywać tymczasowe anonimowych rachunków do uwierzytelniania Firebase. Te tymczasowe anonimowych kont mogą być stosowane, aby umożliwić użytkownikom, którzy jeszcze nie zapisali się do swojej aplikacji do pracy z danymi chronionymi przepisami bezpieczeństwa. Jeśli użytkownik anonimowy postanawia zapisać się do swojej aplikacji, możesz połączyć swoje dane logowania do konta anonimowego , tak aby mogły kontynuować pracę z ich chronionych danych w przyszłych sesjach.

Zanim zaczniesz

Zastosowanie Swift Menedżer pakietów do instalacji i zarządzania zależnościami Firebase.

  1. W Xcode, z otwartych aplikacji projektu, przejdź do menu Plik> Dodaj pakiety .
  2. Gdy pojawi się monit, dodać platformy Firebase firmy Apple SDK repozytorium:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę uwierzytelniania Firebase.
  5. Po zakończeniu Xcode automatycznie rozpocznie pobieranie i rozwiązywania swoich zależnościami w tle.

Następnie wykonać pewne czynności konfiguracyjne:

  1. Jeśli nie zostały jeszcze podłączone swoją aplikację do projektu Firebase, zrobić z konsoli Firebase .
  2. Włącz anonimowego logowania:
    1. W konsoli Firebase otwórz sekcję Auth .
    2. Na stronie logowania w Methods , umożliwienie logowania metody Anonymous .

Uwierzytelniania Firebase anonimowo

Kiedy zarejestrowany użytkownik wykorzystuje się funkcję aplikacji, która wymaga uwierzytelnienia z Firebase, Zaloguj się użytkownikowi anonimowo, wykonując następujące kroki:

  1. Importować FirebaseCore moduł w UIApplicationDelegate , jak również wszelkie inne moduły Firebase swoich zastosowań app delegata. Na przykład, do korzystania z Cloud FireStore i uwierzytelnianie:

    Szybki

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Cel C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Skonfiguruj FirebaseApp wspólne wystąpienie, zazwyczaj w swojej App „s inicjująca lub aplikacji delegata application(_:didFinishLaunchingWithOptions:) Metoda:

    Szybki

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

    Cel C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Wywołać signInAnonymouslyWithCompletion: metoda:

    Szybki

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

    Cel C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Jeżeli signInAnonymouslyWithCompletion: uzupełnia metody bez błędu, można uzyskać dane konta anonimowego użytkownika z FIRAuthDataResult obiektu:

    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;
    

Konwersja konta anonimowego do stałego konta

Kiedy anonimowych znaki użytkowników do aplikacji, możesz chcieć, aby mogły kontynuować swoją pracę ze swoim nowym koncie, na przykład, może chcesz, aby elementy użytkownik dodał do koszyka, zanim podpisał się dostępne w nowych konto jest wózek na zakupy. Aby to zrobić, wykonaj następujące kroki:

  1. Gdy użytkownik up, ukończyć logowania przepływu dla dostawcy uwierzytelniania użytkownika zależy, ale nie w tym, nazywając jedną z FIRAuth.signInWith metod. Na przykład, uzyskać Google ID tokenu użytkownika, Facebook token dostępu lub adres e-mail i hasło.
  2. Uzyskać FIRAuthCredential dla nowego dostawcy uwierzytelniania:

    Google Sign-In
    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];
    
    Email-hasło logowania
    Szybki
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Cel C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. Przepuścić FIRAuthCredential obiekt do logowania użytkownika linkWithCredential:completion: metodę:

    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, nowe konto użytkownika może uzyskać dostęp do konta anonimowego użytkownika dane Firebase.

Następne kroki

Teraz użytkownicy mogą uwierzytelniać z Firebase można kontrolować dostęp do danych w bazie danych Firebase zastosowaniem zasady Firebase .