Authentifizieren Sie sich bei Firebase mit passwortbasierten Konten auf Apple-Plattformen

Sie können die Firebase-Authentifizierung verwenden, damit sich Ihre Benutzer mit ihren E-Mail-Adressen und Passwörtern bei Firebase authentifizieren und die passwortbasierten Konten Ihrer App verwalten können.

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. Anmeldung per E-Mail/Passwort aktivieren:
    1. Öffnen Sie in der Firebase-Konsole den Abschnitt Auth .
    2. Aktivieren Sie auf der Registerkarte Anmeldemethode die Anmeldemethode E- Mail/Kennwort und klicken Sie auf Speichern .

Erstellen Sie ein passwortbasiertes Konto

Um ein neues Benutzerkonto mit einem Passwort zu erstellen, führen Sie die folgenden Schritte in der Anmeldeaktivität Ihrer App aus:

  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. Wenn sich ein neuer Benutzer über das Anmeldeformular Ihrer App anmeldet, führen Sie alle neuen Schritte zur Kontovalidierung durch, die Ihre App erfordert, wie z. B. die Überprüfung, ob das Passwort des neuen Kontos richtig eingegeben wurde und Ihren Komplexitätsanforderungen entspricht.
  4. Erstellen Sie ein neues Konto, indem Sie die E-Mail-Adresse und das Kennwort des neuen Benutzers an createUserWithEmail:email:password:completion: .

    Schnell

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    Ziel c

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Wenn das neue Konto erfolgreich erstellt wurde, ist der Benutzer angemeldet, und Sie können die Kontodaten des Benutzers aus dem Ergebnisobjekt abrufen, das an die Rückrufmethode übergeben wird.

Melden Sie einen Benutzer mit einer E-Mail-Adresse und einem Kennwort an

Die Schritte zum Anmelden eines Benutzers mit einem Passwort ähneln den Schritten zum Erstellen eines neuen Kontos. Gehen Sie in der Anmeldeaktivität Ihrer App wie folgt vor:

  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. Wenn sich ein Benutzer bei Ihrer App anmeldet, übergeben Sie die E-Mail-Adresse und das Kennwort des Benutzers an signInWithEmail:email:password:completion: .

    Schnell

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    Ziel c

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Wenn sich der Benutzer erfolgreich anmeldet, können Sie die Kontodaten des Benutzers aus dem Ergebnisobjekt abrufen, das an die Rückrufmethode übergeben wird.

Nächste Schritte

Nachdem sich ein Benutzer zum ersten Mal angemeldet hat, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen verknüpft – d. h. dem Benutzernamen und Kennwort, der Telefonnummer oder den Authentifizierungsanbieterinformationen –, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Benutzer in jeder App in Ihrem Projekt zu identifizieren, unabhängig davon, wie sich der Benutzer anmeldet.

  • In Ihren Apps können Sie die grundlegenden Profilinformationen des Benutzers aus dem FIRUser Objekt abrufen. Siehe Benutzer verwalten .

  • In Ihren Sicherheitsregeln für die Firebase-Echtzeitdatenbank und den Cloud-Speicher können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der Variablen auth und damit steuern, auf welche Daten ein Benutzer zugreifen kann.

Sie können Benutzern erlauben, sich mit mehreren Authentifizierungsanbietern bei Ihrer App anzumelden, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters mit einem vorhandenen Benutzerkonto verknüpfen.

Um einen Benutzer abzumelden, rufen signOut: .

Schnell

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

Ziel c

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

Möglicherweise möchten Sie auch Fehlerbehandlungscode für alle Authentifizierungsfehler hinzufügen. Siehe Behandlung von Fehlern .