Créer un compte utilisateur
Pour créer un utilisateur dans votre projet Firebase, appelez la méthode
createUser
ou en connectant un utilisateur pour la première fois à l'aide d'une identité fédérée.
tel que Google Sign-In ou
Facebook Login.
Vous pouvez également créer des utilisateurs authentifiés par mot de passe dans la section "Authentification" de la console Firebase, sur la page "Utilisateurs".
Obtenir l'utilisateur actuellement connecté
La méthode recommandée pour obtenir l'utilisateur actuel consiste à définir un écouteur sur l'objet Objet Auth:
Swift
handle = Auth.auth().addStateDidChangeListener { auth, user in // ... }
Objective-C
self.handle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { // ... }];
En utilisant un écouteur, vous vous assurez que l'objet Auth ne se trouve pas dans une classe intermédiaire de l'utilisateur, comme l'initialisation, lorsque vous obtenez l'utilisateur actuel.
Vous pouvez également obtenir l'utilisateur actuellement connecté à l'aide de l'currentUser
. Si un utilisateur n'est pas connecté, currentUser
est nul:
Swift
if Auth.auth().currentUser != nil { // User is signed in. // ... } else { // No user is signed in. // ... }
Objective-C
if ([FIRAuth auth].currentUser) { // User is signed in. // ... } else { // No user is signed in. // ... }
Obtenir le profil d'un utilisateur
Pour obtenir les informations de profil d'un utilisateur, utilisez les propriétés d'une instance de
FIRUser
Exemple :
Swift
let user = Auth.auth().currentUser 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 += " " } // ... }
Objective-C
FIRUser *user = [FIRAuth auth].currentUser; 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; // ... }
Obtenir les informations de profil spécifiques au fournisseur d'un utilisateur
Pour obtenir les informations de profil récupérées auprès des fournisseurs de connexion associés à un
utilisez la propriété providerData
. Exemple :
Swift
let userInfo = Auth.auth().currentUser?.providerData[indexPath.row] cell?.textLabel?.text = userInfo?.providerID // Provider-specific UID cell?.detailTextLabel?.text = userInfo?.uid
Objective-C
id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row]; cell.textLabel.text = [userInfo providerID]; // Provider-specific UID cell.detailTextLabel.text = [userInfo uid];
Mettre à jour le profil d'un utilisateur
Vous pouvez mettre à jour les informations de base du profil d'un utilisateur, à savoir son nom à afficher
et l'URL de la photo de profil, avec la classe UserProfileChangeRequest
. Exemple :
Swift
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() changeRequest?.displayName = displayName changeRequest?.commitChanges { error in // ... }
Objective-C
FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest]; changeRequest.displayName = userInput; [changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) { // ... }];
Définir l'adresse e-mail d'un utilisateur
Vous pouvez définir l'adresse e-mail d'un utilisateur à l'aide de la méthode updateEmail
.
Exemple :
Swift
Auth.auth().currentUser?.updateEmail(to: email) { error in // ... }
Objective-C
[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Envoyer un e-mail de validation à un utilisateur
Vous pouvez envoyer un e-mail de validation de l'adresse à un utilisateur disposant du
sendEmailVerificationWithCompletion:
. Exemple :
Swift
Auth.auth().currentUser?.sendEmailVerification { error in // ... }
Objective-C
[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) { // ... }];
Vous pouvez personnaliser le modèle d'e-mail utilisé dans la section "Authentification" de la console Firebase, sur la page "Modèles d'e-mails". Consultez la section Modèles d'e-mails dans le centre d'aide Firebase.
Il est également possible de transmettre un état URL de suivi continu pour être redirigé à l'application lors de l'envoi d'un e-mail de validation.
Vous pouvez également localiser l'e-mail de validation en modifiant la langue. sur l'instance Auth avant d'envoyer l'e-mail. Exemple :
Swift
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Objective-C
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Définir le mot de passe d'un utilisateur
Vous pouvez définir le mot de passe d'un utilisateur à l'aide de la méthode updatePassword
. Exemple :
Swift
Auth.auth().currentUser?.updatePassword(to: password) { error in // ... }
Objective-C
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
Envoyer un e-mail de réinitialisation du mot de passe
Vous pouvez envoyer un e-mail de réinitialisation du mot de passe à un utilisateur disposant du
sendPasswordReset
. Exemple :
Swift
Auth.auth().sendPasswordReset(withEmail: email) { error in // ... }
Objective-C
[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Vous pouvez personnaliser le modèle d'e-mail utilisé dans la section "Authentification" de la console Firebase, sur la page "Modèles d'e-mails". Consultez la section Modèles d'e-mails dans le centre d'aide Firebase.
Il est également possible de transmettre l'état via une URL de continuation pour rediriger l'utilisateur vers l'application lors de l'envoi d'un e-mail de réinitialisation de mot de passe.
Vous pouvez également localiser l'e-mail de réinitialisation du mot de passe en modifiant la langue. sur l'instance Auth avant d'envoyer l'e-mail. Exemple :
Swift
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Objective-C
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Vous pouvez également envoyer des e-mails de réinitialisation du mot de passe à partir de la console Firebase.
Supprimer un compte utilisateur
Vous pouvez supprimer un compte utilisateur à l'aide de la méthode delete
. Exemple :
Swift
let user = Auth.auth().currentUser
user?.delete { error in
if let error = error {
// An error happened.
} else {
// Account deleted.
}
}
Objective-C
FIRUser *user = [FIRAuth auth].currentUser;
[user deleteWithCompletion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// Account deleted.
}
}];
Vous pouvez également supprimer des utilisateurs de la section "Authentification" de la console Firebase, sur la page "Utilisateurs".
Réauthentifier un utilisateur
Certaines actions sensibles, telles que
Supprimer un compte
définir une adresse e-mail principale ;
modification d'un mot de passe : exigez que l'utilisateur ait
s'est connecté récemment. Si vous effectuez l'une de ces actions et que l'utilisateur s'est connecté
il y a trop longtemps, l'action échoue avec l'erreur FIRAuthErrorCodeCredentialTooOld
. Dans ce cas, authentifiez à nouveau l'utilisateur en obtenant une nouvelle connexion.
les identifiants de l'utilisateur et les transmettre à reauthenticate
. Exemple :
Swift
let user = Auth.auth().currentUser
var credential: AuthCredential
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(with: credential) { error in
if let error = error {
// An error happened.
} else {
// User re-authenticated.
}
}
Objective-C
FIRUser *user = [FIRAuth auth].currentUser;
FIRAuthCredential *credential;
// Prompt the user to re-provide their sign-in credentials
[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// User re-authenticated.
}
}];
Importer des comptes utilisateur
Vous pouvez importer des comptes utilisateur à partir d'un fichier dans votre projet Firebase à l'aide de la commande auth:import
de la CLI Firebase. Exemple :
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14