Mit Firebase Authentication können Sie temporäre anonyme Konten erstellen und verwenden um sich bei Firebase zu authentifizieren. Mit diesen temporären anonymen Konten können Nutzer, die sich noch nicht in Ihrer App registriert haben, mit Daten arbeiten, die durch Sicherheitsregeln geschützt sind. Wenn sich ein anonymer Nutzer für Ihre App registriert, können Sie ihre Anmeldedaten mit der anonymen Konto, damit sie weiter mit ihren geschützten Daten in für zukünftige Sitzungen.
Hinweis
-
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Gehen Sie in Xcode bei geöffnetem App-Projekt zu File > Pakete hinzufügen.
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Firebase Authentication-Bibliothek aus.
- Fügen Sie in den Build-Einstellungen des Ziels im Bereich Other Linker Flags das Flag
-ObjC
hinzu. - Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verbunden haben, tun Sie dies über Firebase-Konsole
- Anonyme Authentifizierung aktivieren:
- Öffnen Sie in der Firebase-Konsole den Abschnitt Auth.
- Aktivieren Sie auf der Seite Anmeldemethoden die Option Anonym Anmeldemethode aus.
- Optional: Wenn Sie ein Upgrade für Ihr Projekt auf Firebase Authentication with Identity Platform können Sie die automatische Bereinigung aktivieren. Wann? werden anonyme Konten, die älter als 30 Tage sind, automatisch gelöscht. In Projekten mit aktivierter automatischer Bereinigung wird die anonyme Authentifizierung nicht nicht länger auf Nutzungslimits oder Abrechnungskontingente angerechnet werden. Weitere Informationen finden Sie unter Automatische Bereinigung:
Anonym mit Firebase authentifizieren
Wenn ein abgemeldeter Nutzer eine App-Funktion verwendet, für die eine Authentifizierung mit Firebase erforderlich ist, melden Sie ihn anonym an. Gehen Sie dazu so vor:
- Importieren Sie das Modul
FirebaseCore
in IhrUIApplicationDelegate
sowie alle anderen Firebase-Module, die Ihr App-Delegate verwendet. So verwenden Sie beispielsweise Cloud Firestore und Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurieren Sie eine freigegebene Instanz von
FirebaseApp
in derapplication(_:didFinishLaunchingWithOptions:)
-Methode Ihres App-Delegierten:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Wenn Sie SwiftUI verwenden, müssen Sie einen Anwendungsdelegierten erstellen und über
UIApplicationDelegateAdaptor
oderNSApplicationDelegateAdaptor
an dasApp
-Objekt anhängen. Außerdem müssen Sie App Delegate Swizzling deaktivieren. Für Weitere Informationen finden Sie in der SwiftUI-Anleitung.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Rufen Sie die Methode
signInAnonymouslyWithCompletion:
auf:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Wenn die
signInAnonymouslyWithCompletion:
-Methode ohne Fehler abgeschlossen wird, kannst du die Kontodaten des anonymen Nutzers aus demFIRAuthDataResult
-Objekt abrufen:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Umwandlung eines anonymen Kontos in ein dauerhaftes Konto
Wenn sich ein anonymer Nutzer in Ihrer App registriert, können Sie ihm erlauben, seine Arbeit mit seinem neuen Konto fortzusetzen. Sie können beispielsweise die Artikel, die der Nutzer seinem Einkaufswagen hinzugefügt hat, bevor er sich registriert hat, im Einkaufswagen seines neuen Kontos verfügbar machen. Führen Sie dazu folgende Schritte aus:
- Wenn sich der Nutzer registriert, schließen Sie den Anmeldevorgang für das
Authentifizierungsanbieter bis zum Aufrufen einer der
FIRAuth.signInWith
-Methoden. Rufen Sie beispielsweise das Google-ID-Token des Nutzers ab, Facebook-Zugriffstoken oder E-Mail-Adresse und Passwort. Rufen Sie eine
FIRAuthCredential
für den neuen Authentifizierungsanbieter ab:Google Log-in
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Facebook-Anmeldung
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Anmeldung mit E-Mail-Passwort
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Übergeben Sie das
FIRAuthCredential
-Objekt an daslinkWithCredential:completion:
-Methode:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-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 Nutzers
Auf die Firebase-Daten des anonymen Kontos zugreifen
Automatische Bereinigung
Wenn Sie für Ihr Projekt ein Upgrade auf Firebase Authentication with Identity Platform durchgeführt haben, können Sie Aktivieren Sie die automatische Bereinigung in der Firebase-Konsole. Wenn Sie diese Funktion aktivieren, erlauben Sie Firebase, anonyme Konten, die älter als 30 Tage sind, automatisch zu löschen. In Projekten mit automatischem Clean-up aktiviert ist, wird die anonyme Authentifizierung nicht auf Nutzungslimits oder Abrechnungskontingente angerechnet.
- Alle anonymen Konten, die nach der Aktivierung der automatischen Bereinigung erstellt wurden, werden möglicherweise automatisch werden 30 Tage nach der Erstellung gelöscht.
- Vorhandene anonyme Konten können 30 Tage nach Aktivierung der automatischen Bereinigung automatisch gelöscht werden.
- Wenn Sie die automatische Bereinigung deaktivieren, bleiben alle zum Löschen geplanten anonymen Konten erhalten zum Löschen vorgemerkt.
- Wenn Sie ein Upgrade ausführen ein anonymes Konto erstellt, indem es mit einer beliebigen Anmeldemethode verknüpft wird, wird das Konto werden nicht automatisch gelöscht.
Wenn Sie wissen möchten, wie viele Nutzer betroffen sind,
Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie filtern nach
is_anon
in Cloud
Logging:
Nächste Schritte
Da sich Nutzer jetzt bei Firebase authentifizieren können, können Sie ihren Zugriff auf in Ihrer Firebase-Datenbank Firebase-Regeln