Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Erste Schritte mit der Firebase-Authentifizierung auf Apple-Plattformen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Sie können die Firebase-Authentifizierung verwenden, um Benutzern zu erlauben, sich mit einer oder mehreren Anmeldemethoden bei Ihrer App anzumelden, einschließlich der Anmeldung mit E-Mail-Adresse und Kennwort sowie föderierten Identitätsanbietern wie Google-Anmeldung und Facebook-Anmeldung. Dieses Tutorial führt Sie zu den ersten Schritten mit der Firebase-Authentifizierung, indem es Ihnen zeigt, wie Sie Ihrer App eine E-Mail-Adresse und eine Kennwortanmeldung hinzufügen.

Verbinden Sie Ihre App mit Firebase

  1. Installieren Sie das Firebase-SDK .
  2. Fügen Sie in der Firebase-Konsole Ihre App zu Ihrem Firebase-Projekt hinzu.

Fügen Sie Ihrer App die Firebase-Authentifizierung hinzu

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.

(Optional) Erstellen Sie einen Prototyp und testen Sie ihn mit der Firebase Local Emulator Suite

Bevor wir darüber sprechen, wie Ihre App Benutzer authentifiziert, stellen wir eine Reihe von Tools vor, mit denen Sie Prototypen erstellen und die Authentifizierungsfunktion testen können: Firebase Local Emulator Suite. Wenn Sie sich zwischen Authentifizierungstechniken und -anbietern entscheiden, verschiedene Datenmodelle mit öffentlichen und privaten Daten mithilfe von Authentifizierungs- und Firebase-Sicherheitsregeln ausprobieren oder Prototypen von Anmelde-UI-Designs erstellen, kann es eine gute Idee sein, lokal arbeiten zu können, ohne Live-Dienste bereitzustellen .

Ein Authentifizierungsemulator ist Teil der Local Emulator Suite, die es Ihrer App ermöglicht, mit emulierten Datenbankinhalten und -konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, andere Datenbanken und Sicherheitsregeln) zu interagieren.

Die Verwendung des Authentifizierungsemulators umfasst nur wenige Schritte:

  1. Hinzufügen einer Codezeile zur Testkonfiguration Ihrer App, um eine Verbindung mit dem Emulator herzustellen.
  2. Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses firebase emulators:start aus.
  3. Verwenden der Benutzeroberfläche der Local Emulator Suite für interaktives Prototyping oder der REST-API des Authentifizierungsemulators für nicht interaktives Testen.

Eine ausführliche Anleitung finden Sie unter Connect your app to the Authentication emulator . Weitere Informationen finden Sie in der Einführung zur Local Emulator Suite .

Fahren wir nun mit der Authentifizierung von Benutzern fort.

Initialisieren Sie das Firebase-SDK

Importieren Sie in Ihrem App-Delegaten zuerst das Firebase SDK:

Schnell

import FirebaseCore

Ziel c

@import FirebaseCore;

Initialisieren Sie dann in der Methode application:didFinishLaunchingWithOptions: das FirebaseApp -Objekt:

Schnell

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

Ziel c

// Use Firebase library to configure APIs
[FIRApp configure];

Authentifizierungsstatus abhören

Fügen Sie für jede Ansicht Ihrer App, die Informationen über den angemeldeten Benutzer benötigt, einen Listener an das FIRAuth Objekt an. Dieser Listener wird immer dann aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert.

Fügen Sie den Listener in der Methode viewWillAppear des View-Controllers hinzu:

Schnell

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Ziel c

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

Und trennen Sie den Listener in der viewWillDisappear -Methode des View-Controllers:

Schnell

Auth.auth().removeStateDidChangeListener(handle!)

Ziel c

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Registrieren Sie neue Benutzer

Erstellen Sie ein Formular, das es neuen Benutzern ermöglicht, sich mit ihrer E-Mail-Adresse und einem Passwort bei Ihrer App zu registrieren. Wenn ein Benutzer das Formular ausfüllt, validieren Sie die vom Benutzer bereitgestellte E-Mail-Adresse und das Kennwort und übergeben Sie sie dann an die createUser Methode:

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) {
  // ...
}];

Melden Sie vorhandene Benutzer an

Erstellen Sie ein Formular, das es bestehenden Benutzern ermöglicht, sich mit ihrer E-Mail-Adresse und ihrem Passwort anzumelden. Wenn ein Benutzer das Formular ausfüllt, rufen Sie die signIn Methode auf:

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) {
  // ...
}];

Benutzerinformationen erhalten

Nachdem sich ein Benutzer erfolgreich angemeldet hat, können Sie Informationen über den Benutzer abrufen. Zum Beispiel in Ihrem Authentifizierungsstatus listener :

Schnell

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

Ziel c

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

Nächste Schritte

Erfahren Sie, wie Sie Unterstützung für andere Identitätsanbieter und anonyme Gastkonten hinzufügen: