Sie können die Firebase-Authentifizierung verwenden, um Benutzern zu ermöglichen, 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
- Installieren Sie das Firebase-SDK .
- 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.
- Navigieren Sie in Xcode bei geöffnetem App-Projekt zu File > Add Packages .
- Wenn Sie dazu aufgefordert werden, fügen Sie das Firebase Apple-Plattform-SDK-Repository hinzu:
- Wählen Sie die Firebase-Authentifizierungsbibliothek aus.
- Wenn Sie fertig sind, beginnt Xcode automatisch mit dem Auflösen und Herunterladen Ihrer Abhängigkeiten im Hintergrund.
https://github.com/firebase/firebase-ios-sdk
(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 Authentifizierungsfunktionen 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:
- Hinzufügen einer Codezeile zur Testkonfiguration Ihrer App, um eine Verbindung mit dem Emulator herzustellen.
- Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses
firebase emulators:start
. - 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 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: