Vous pouvez utiliser l'authentification Firebase pour permettre aux utilisateurs de se connecter à votre application à l'aide d'une ou plusieurs méthodes de connexion, notamment la connexion par adresse e-mail et par mot de passe, ainsi que des fournisseurs d'identité fédérés tels que Google Sign-in et Facebook Login. Ce didacticiel vous permet de démarrer avec l'authentification Firebase en vous montrant comment ajouter une adresse e-mail et un mot de passe de connexion à votre application.
Connectez votre application à Firebase
- Installez le SDK Firebase .
- Dans la console Firebase , ajoutez votre application à votre projet Firebase.
Ajoutez l'authentification Firebase à votre application
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, avec votre projet d'application ouvert, accédez à File > Add Packages .
- Lorsque vous y êtes invité, ajoutez le référentiel SDK des plates-formes Apple Firebase :
- Choisissez la bibliothèque d'authentification Firebase.
- Ajoutez l'indicateur
-ObjC
à la section Autres indicateurs de l'éditeur de liens des paramètres de construction de votre cible. - Une fois terminé, Xcode commencera automatiquement à résoudre et à télécharger vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk.git
(Facultatif) Prototyper et tester avec Firebase Local Emulator Suite
Avant de parler de la façon dont votre application authentifie les utilisateurs, présentons un ensemble d'outils que vous pouvez utiliser pour prototyper et tester la fonctionnalité d'authentification : Firebase Local Emulator Suite. Si vous choisissez parmi des techniques et des fournisseurs d'authentification, essayez différents modèles de données avec des données publiques et privées à l'aide des règles d'authentification et de sécurité Firebase, ou prototypage de conceptions d'interface utilisateur de connexion, pouvoir travailler localement sans déployer de services en direct peut être une excellente idée. .
Un émulateur d'authentification fait partie de Local Emulator Suite, qui permet à votre application d'interagir avec le contenu et la configuration de la base de données émulée, ainsi qu'éventuellement avec les ressources de votre projet émulé (fonctions, autres bases de données et règles de sécurité).
L'utilisation de l'émulateur d'authentification ne nécessite que quelques étapes :
- Ajout d'une ligne de code à la configuration de test de votre application pour vous connecter à l'émulateur.
- À partir de la racine du répertoire de votre projet local, exécutez
firebase emulators:start
. - Utilisation de l’interface utilisateur de Local Emulator Suite pour le prototypage interactif ou de l’API REST de l’émulateur d’authentification pour les tests non interactifs.
Un guide détaillé est disponible sur Connectez votre application à l'émulateur d'authentification . Pour plus d'informations, consultez l' introduction de la suite d'émulateur local .
Passons maintenant à la façon d'authentifier les utilisateurs.
Initialiser le SDK Firebase
Dans le délégué de votre application, importez d'abord le SDK Firebase :
Rapide
import FirebaseCore
Objectif c
@import FirebaseCore;
Ensuite, dans la application:didFinishLaunchingWithOptions:
:, initialisez l'objet FirebaseApp
:
Rapide
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objectif c
// Use Firebase library to configure APIs
[FIRApp configure];
Écouter l'état d'authentification
Pour chacune des vues de votre application nécessitant des informations sur l'utilisateur connecté, attachez un écouteur à l'objet FIRAuth
. Cet écouteur est appelé chaque fois que l’état de connexion de l’utilisateur change.
Attachez l'écouteur dans la méthode viewWillAppear
du contrôleur de vue :
Rapide
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Objectif c
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
Et détachez l'écouteur dans la méthode viewWillDisappear
du contrôleur de vue :
Rapide
Auth.auth().removeStateDidChangeListener(handle!)
Objectif c
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Inscrivez de nouveaux utilisateurs
Créez un formulaire qui permet aux nouveaux utilisateurs de s'inscrire sur votre application en utilisant leur adresse e-mail et un mot de passe. Lorsqu'un utilisateur complète le formulaire, validez l'adresse email et le mot de passe fournis par l'utilisateur, puis transmettez-les à la méthode createUser
:
Rapide
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
Objectif c
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Connectez-vous aux utilisateurs existants
Créez un formulaire qui permet aux utilisateurs existants de se connecter à l'aide de leur adresse e-mail et de leur mot de passe. Lorsqu'un utilisateur remplit le formulaire, appelez la méthode signIn
:
Rapide
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
Objectif c
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Obtenir des informations sur l'utilisateur
Une fois qu’un utilisateur s’est connecté avec succès, vous pouvez obtenir des informations sur l’utilisateur. Par exemple, dans votre écouteur d'état d'authentification :
Rapide
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 += " "
}
// ...
}
Objectif 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;
// ...
}
Prochaines étapes
Découvrez comment ajouter la prise en charge d'autres fournisseurs d'identité et de comptes invités anonymes :