Vous pouvez utiliser Firebase Authentication pour créer et utiliser des comptes anonymes temporaires afin de vous authentifier avec Firebase. Ces comptes anonymes temporaires peuvent être utilisés pour permettre aux utilisateurs qui ne se sont pas encore inscrits à votre appli de travailler avec des données protégées par des règles de sécurité. Si un utilisateur anonyme décide de s'inscrire à votre application, vous pouvez leurs identifiants de connexion pour pouvoir continuer à travailler avec leurs données protégées les prochaines sessions.
Avant de commencer
-
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, ouvrez le projet de votre application, puis accédez à File > Ajouter des packages.
- Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
- Sélectionnez la bibliothèque Firebase Authentication.
- Ajoutez l'indicateur
-ObjC
à la section Other Linker Flags (Autres indicateurs Linker) des paramètres de compilation de votre cible. - Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk.git
- Si vous n'avez pas encore associé votre application à votre projet Firebase, faites-le depuis la console Firebase.
- Activer l'authentification anonyme:
- Dans la console Firebase, ouvrez la section Authentification.
- Sur la page Sign-in Methods (Méthodes de connexion), activez l'option Anonyme. méthode de connexion.
- Facultatif: Si vous avez mis à niveau votre projet vers Firebase Authentication with Identity Platform, vous pouvez activer le nettoyage automatique. Lorsque vous activez ce paramètre, les comptes anonymes de plus de 30 jours sont automatiquement supprimés. Dans les projets pour lesquels le nettoyage automatique est activé, l'authentification sont comptabilisées dans les limites d'utilisation ou les quotas de facturation. Consultez la section Nettoyage automatique.
S'authentifier de manière anonyme avec Firebase
Lorsqu'un utilisateur déconnecté utilise une fonctionnalité de l'application qui nécessite une authentification auprès de Firebase, connectez l'utilisateur de manière anonyme en procédant comme suit:
- Importez le module
FirebaseCore
dans votreUIApplicationDelegate
, ainsi que toute autre Modules Firebase que votre délégué d'application utilise. Par exemple, pour utiliser Cloud Firestore et Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Configurez un
FirebaseApp
l'instance partagée dans le bucket du délégué Méthodeapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Si vous utilisez SwiftUI, vous devez créer un délégué d'application et l'associer à votre struct
App
viaUIApplicationDelegateAdaptor
ouNSApplicationDelegateAdaptor
. Vous devez également désactiver le swizzling du délégué d'application. Pour Pour en savoir plus, consultez les instructions de SwiftUI.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Appelez la méthode
signInAnonymouslyWithCompletion:
:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Si la méthode
signInAnonymouslyWithCompletion:
se termine sans erreur, vous pouvez récupérer les données du compte de l'utilisateur anonyme ObjetFIRAuthDataResult
:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Convertir un compte anonyme en compte permanent
Lorsqu'un utilisateur anonyme s'inscrit à votre application, vous pouvez l'autoriser à pour continuer à travailler avec son nouveau compte. Par exemple, faire en sorte que les articles que l'utilisateur ait ajoutés à son panier avant l'inscription dans le panier de leur nouveau compte. Pour cela, procédez comme suit :
- Lorsque l'utilisateur s'inscrit, suivez la procédure de connexion
d'authentification jusqu'à l'appel de l'un des
FIRAuth.signInWith
. Par exemple, obtenez le jeton d'ID Google, le jeton d'accès Facebook ou l'adresse e-mail et le mot de passe de l'utilisateur. Obtenez un
FIRAuthCredential
pour le nouveau fournisseur d'authentification:Google Sign-In
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Connexion à Facebook
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Connexion par e-mail avec mot de passe
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Transmettez l'objet
FIRAuthCredential
à l'interface utilisateur MéthodelinkWithCredential:completion:
:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
Si l'appel à linkWithCredential:completion:
aboutit, le nouveau compte de l'utilisateur peut
accéder aux données Firebase du compte anonyme.
Nettoyage automatique
Si vous êtes passé à Firebase Authentication with Identity Platform, vous pouvez activer le nettoyage automatique dans la console Firebase. En activant cette fonctionnalité, vous autorisez Firebase supprime automatiquement les comptes anonymes datant de plus de 30 jours. Dans les projets avec (nettoyage activé), l'authentification anonyme ne sera pas prise en compte dans les limites d'utilisation ni dans les quotas de facturation.
- Tous les comptes anonymes créés après l'activation du nettoyage automatique peuvent être automatiquement supprimées à tout moment 30 jours après leur création.
- Les comptes anonymes existants pourront être supprimés automatiquement 30 jours après en activant le nettoyage automatique.
- Si vous désactivez le nettoyage automatique, les comptes anonymes programmés pour être supprimés resteront programmés pour être supprimés.
- Si vous "passez à la version supérieure" d'un compte anonyme en l'associant à une méthode de connexion, le compte n'est pas automatiquement supprimé.
Si vous souhaitez savoir combien d'utilisateurs seront concernés avant d'activer cette fonctionnalité et que vous avez
mis à niveau votre projet vers Firebase Authentication with Identity Platform, vous pouvez filtrer par
is_anon
dans le cloud
Journalisation.
Étapes suivantes
Maintenant que les utilisateurs peuvent s'authentifier avec Firebase, vous pouvez contrôler leur accès aux données de votre base de données Firebase à l'aide de Règles Firebase.