Catch up on everything we announced at this year's Firebase Summit. Learn more

Erste Schritte mit der Firebase-Authentifizierung auf Apple-Plattformen

Sie können Firebase Authentication verwenden, um Benutzern zu ermöglichen, sich bei Ihrer App mit einer oder mehreren Anmeldemethoden anzumelden, einschließlich E-Mail-Adresse und Kennwortanmeldung, und Verbundidentitätsanbietern wie Google Sign-in und Facebook Login. In diesem Tutorial erfahren Sie, wie Sie Ihrer App eine E-Mail-Adresse und ein Passwort hinzufügen, um mit Firebase Authentication zu beginnen.

Verbinden Sie Ihre App mit Firebase

  1. Installieren Sie das SDK Firebase .
  2. In der Firebase Konsole , fügen Sie Ihre App auf Ihr Projekt Firebase.

Firebase Authentication zu Ihrer App hinzufügen

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

  1. In Xcode, mit Ihrem App - Projekt zu öffnen, navigieren Sie zu Datei> Swift Packages> Paket hinzufügen Abhängigkeit.
  2. Wenn Sie dazu aufgefordert werden, fügen Sie das SDK-Repository der Firebase Apple Platforms hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Wählen Sie die Firebase Authentication-Bibliothek aus.
  5. Wenn Sie fertig sind, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.

(Optional) Prototyp und Test mit Firebase Local Emulator Suite

Bevor wir darüber sprechen, wie Ihre App Benutzer authentifiziert, stellen wir eine Reihe von Tools vor, mit denen Sie die Authentifizierungsfunktionalität testen und 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 zu arbeiten, 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 zum Emulator herzustellen.
  2. Von der Wurzel Ihrer lokalen Projektverzeichnis, laufen firebase emulators:start .
  3. Verwenden der Local Emulator Suite-Benutzeroberfläche für interaktives Prototyping oder der Authentifizierungsemulator-REST-API für nicht interaktive Tests.

Eine detaillierte Anleitung finden Sie unter Connect Ihre App auf die Authentifizierung Emulator . Weitere Informationen finden Sie in der Local Emulator Suite Einführung .

Fahren wir nun mit der Authentifizierung von Benutzern fort.

Initialisieren des Firebase SDK

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

Schnell

import Firebase

Ziel c

@import Firebase;

Dann wird in der application:didFinishLaunchingWithOptions: Methode initialisieren FirebaseApp Objekt:

Schnell

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

Ziel c

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

Auf Authentifizierungsstatus achten

Für jede Ihrer App Ansichten , die Notwendigkeit , Informationen über die angemeldeten Nutzer, legen einen Zuhörer an das FIRAuth Objekt. Dieser Listener wird immer dann aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert.

Bringen Sie den Hörer in der Ansicht Controller viewWillAppear Methode:

Schnell

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

Ziel c

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

Und nehmen Sie den Hörer in der Ansicht Controller viewWillDisappear Methode:

Schnell

Auth.auth().removeStateDidChangeListener(handle!)

Ziel c

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Registrieren Sie neue Benutzer

Erstellen Sie ein Formular, mit dem sich neue Benutzer mit ihrer E-Mail-Adresse und einem Passwort bei Ihrer App registrieren können. Wenn ein Benutzer das Formular ausfüllt, bestätigt die E - Mail - Adresse und das Passwort durch den Benutzer zur Verfügung gestellt und sie dann zum Pass 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) {
  // ...
}];

Vorhandene Benutzer anmelden

Erstellen Sie ein Formular, mit dem sich vorhandene Benutzer mit ihrer E-Mail-Adresse und ihrem Kennwort anmelden können. Wenn ein Benutzer das Formular ausfüllt, rufen Sie die signIn Methode:

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 abrufen

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

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: