Mit Firebase Authentication können Sie temporäre anonyme Konten erstellen und verwenden, um sich bei Firebase zu authentifizieren. Diese temporären anonymen Konten können verwendet werden, um Nutzern, die sich noch nicht für Ihre App registriert haben, die Arbeit mit Daten zu ermöglichen, die durch Sicherheitsregeln geschützt sind. Wenn sich ein anonymer Nutzer für Ihre App registriert, können Sie seine Anmeldedaten mit dem anonymen Konto verknüpfen, damit er in zukünftigen Sitzungen weiterhin mit seinen geschützten Daten arbeiten kann.
Hinweis
-
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > 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 das Flag
-ObjC
dem Abschnitt Other Linker Flags (Weitere Linker-Flags) der Build-Einstellungen Ihres Ziels 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 verknüpft haben, holen Sie das in der Firebase Console nach.
- Anonyme Authentifizierung aktivieren:
- Öffnen Sie in der Firebase-Konsole den Bereich Auth (Authentifizierung).
- Aktivieren Sie auf der Seite Anmeldemethoden die Anmeldemethode Anonym.
- Optional: Wenn Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie die automatische Bereinigung aktivieren. Wenn Sie diese Einstellung aktivieren, werden anonyme Konten, die älter als 30 Tage sind, automatisch gelöscht. In Projekten, in denen die automatische Bereinigung aktiviert ist, wird die anonyme Authentifizierung nicht mehr auf Nutzungslimits oder Abrechnungskontingente angerechnet. Weitere Informationen finden Sie unter Automatische Bereinigung.
Anonym mit Firebase authentifizieren
Wenn ein abgemeldeter Nutzer eine App-Funktion verwendet, die eine Authentifizierung mit Firebase erfordert, melden Sie den Nutzer anonym an, indem Sie die folgenden Schritte ausführen:
- Importieren Sie das
FirebaseCore
-Modul in IhreUIApplicationDelegate
sowie alle anderen Firebase-Module, die von Ihrem App-Delegaten verwendet werden. 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
FirebaseApp
-Instanz in der Methodeapplication(_:didFinishLaunchingWithOptions:)
des App-Delegaten: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 ein Anwendungs-Delegate erstellen und es über
UIApplicationDelegateAdaptor
oderNSApplicationDelegateAdaptor
an IhreApp
-Struktur anhängen. Außerdem müssen Sie das Swizzling von App-Delegaten deaktivieren. 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, können Sie 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;
Anonymes Konto in ein dauerhaftes Konto umwandeln
Wenn sich ein anonymer Nutzer in Ihrer App registriert, möchten Sie ihm möglicherweise erlauben, seine Arbeit mit seinem neuen Konto fortzusetzen. So könnten Sie beispielsweise die Artikel, die der Nutzer vor der Registrierung in den Einkaufswagen gelegt hat, im Einkaufswagen seines neuen Kontos verfügbar machen. Führen Sie dazu folgende Schritte aus:
- Wenn sich der Nutzer registriert, führen Sie den Anmeldevorgang für den Authentifizierungsanbieter des Nutzers bis zum Aufrufen einer der
FIRAuth.signInWith
-Methoden durch. Rufen Sie beispielsweise das Google-ID-Token, das Facebook-Zugriffstoken oder die E‑Mail-Adresse und das Passwort des Nutzers ab. Rufen Sie ein
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-Login
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Anmeldung mit E-Mail-Adresse und 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 die MethodelinkWithCredential:completion:
des angemeldeten Nutzers: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 über das neue Konto des Nutzers auf die Firebase-Daten des anonymen Kontos zugegriffen werden.
Automatische Bereinigung
Wenn Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie die automatische Bereinigung in der Firebase-Konsole aktivieren. Wenn Sie diese Funktion aktivieren, erlauben Sie Firebase, anonyme Konten, die älter als 30 Tage sind, automatisch zu löschen. In Projekten, in denen die automatische Bereinigung aktiviert ist, wird die anonyme Authentifizierung nicht auf Nutzungslimits oder Abrechnungskontingente angerechnet.
- Alle anonymen Konten, die nach der Aktivierung der automatischen Bereinigung erstellt wurden, können jederzeit nach 30 Tagen nach der Erstellung automatisch gelöscht werden.
- Vorhandene anonyme Konten können 30 Tage nach der Aktivierung der automatischen Bereinigung automatisch gelöscht werden.
- Wenn Sie die automatische Bereinigung deaktivieren, werden alle anonymen Konten, die zum Löschen vorgesehen sind, weiterhin zum Löschen vorgesehen.
- Wenn Sie ein anonymes Konto „upgraden“, indem Sie es mit einer Anmeldemethode verknüpfen, wird es nicht automatisch gelöscht.
Wenn Sie sehen möchten, wie viele Nutzer betroffen sind, bevor Sie diese Funktion aktivieren, und Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie in Cloud Logging nach is_anon
filtern.
Nächste Schritte
Nachdem sich Nutzer mit Firebase authentifizieren können, können Sie ihren Zugriff auf Daten in Ihrer Firebase-Datenbank mit Firebase-Regeln steuern.