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

Authentifizieren Sie sich anonym mit Firebase auf Apple-Plattformen

Sie können die Firebase-Authentifizierung verwenden, um temporäre anonyme Konten zu erstellen und zu verwenden, um sich bei Firebase zu authentifizieren. Diese temporären anonymen Konten können verwendet werden, um Benutzern, die sich noch nicht bei Ihrer App angemeldet haben, zu ermöglichen, mit Daten zu arbeiten, die durch Sicherheitsregeln geschützt sind. Wenn ein anonymer Benutzer beschließt, sich bei Ihrer App anzumelden, können Sie seine Anmeldeinformationen mit dem anonymen Konto verknüpfen, damit er in zukünftigen Sitzungen weiterhin mit seinen geschützten Daten arbeiten kann.

Bevor Sie beginnen

Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

  1. Navigieren Sie in Xcode bei geöffnetem App-Projekt zu File > Add Packages .
  2. Wenn Sie dazu aufgefordert werden, fügen Sie das Firebase Apple-Plattform-SDK-Repository hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wählen Sie die Firebase-Authentifizierungsbibliothek aus.
  5. Wenn Sie fertig sind, beginnt Xcode automatisch mit dem Auflösen und Herunterladen Ihrer Abhängigkeiten im Hintergrund.

Führen Sie als Nächstes einige Konfigurationsschritte durch:

  1. Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verbunden haben, tun Sie dies über die Firebase-Konsole .
  2. Anonyme Authentifizierung aktivieren:
    1. Öffnen Sie in der Firebase-Konsole den Abschnitt Auth .
    2. Aktivieren Sie auf der Seite Anmeldemethoden die anonyme Anmeldemethode.

Authentifizieren Sie sich anonym bei Firebase

Wenn ein abgemeldeter Benutzer eine App-Funktion verwendet, die eine Authentifizierung bei Firebase erfordert, melden Sie den Benutzer anonym an, indem Sie die folgenden Schritte ausführen:

  1. Importieren Sie das FirebaseCore -Modul in Ihr UIApplicationDelegate sowie alle anderen Firebase-Module, die Ihr App-Delegierter verwendet. So verwenden Sie beispielsweise Cloud Firestore und Authentifizierung:

    Schnell

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Ziel c

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Konfigurieren Sie eine freigegebene FirebaseApp -Instanz, normalerweise in der Methode application(_:didFinishLaunchingWithOptions:) Ihrer App 's initializer oder des App-Delegaten:

    Schnell

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

    Ziel c

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Rufen Sie die Methode signInAnonymouslyWithCompletion: :

    Schnell

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

    Ziel c

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Wenn die Methode signInAnonymouslyWithCompletion: ohne Fehler abgeschlossen wird, können Sie die Kontodaten des anonymen Benutzers aus dem Objekt FIRAuthDataResult :

    Schnell

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    Ziel c

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;
    

Wandeln Sie ein anonymes Konto in ein permanentes Konto um

Wenn sich ein anonymer Benutzer bei Ihrer App anmeldet, möchten Sie ihm möglicherweise erlauben, seine Arbeit mit seinem neuen Konto fortzusetzen – Sie möchten beispielsweise die Artikel, die der Benutzer seinem Einkaufswagen hinzugefügt hat, bevor er sich anmeldet, in seinem neuen Konto verfügbar machen Warenkorb des Kontos. Führen Sie dazu die folgenden Schritte aus:

  1. Wenn sich der Benutzer anmeldet, schließen Sie den Anmeldeablauf für den Authentifizierungsanbieter des Benutzers bis zum Aufrufen einer der FIRAuth.signInWith Methoden ab, schließen diese jedoch nicht ein. Rufen Sie beispielsweise das Google-ID-Token, das Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort des Benutzers ab.
  2. Holen Sie sich ein FIRAuthCredential für den neuen Authentifizierungsanbieter:

    Google-Anmeldung
    Schnell
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Ziel c
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Facebook Login
    Schnell
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Ziel c
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    E-Mail-Passwort-Anmeldung
    Schnell
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Ziel c
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. Übergeben Sie das FIRAuthCredential -Objekt an die Methode linkWithCredential:completion: des Anmeldebenutzers:

    Schnell
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    Ziel c
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

Wenn der Aufruf von linkWithCredential:completion: erfolgreich ist, kann das neue Konto des Benutzers auf die Firebase-Daten des anonymen Kontos zugreifen.

Nächste Schritte

Da sich Benutzer jetzt bei Firebase authentifizieren können, können Sie ihren Zugriff auf Daten in Ihrer Firebase-Datenbank mithilfe von Firebase-Regeln steuern .