Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

S'authentifier avec Firebase de manière anonyme sur iOS

Vous pouvez utiliser l'authentification Firebase pour créer et utiliser des comptes anonymes temporaires pour vous authentifier auprès de Firebase. Ces comptes anonymes temporaires peuvent être utilisés pour permettre aux utilisateurs qui ne se sont pas encore inscrits à votre application 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 lier ses informations de connexion au compte anonyme afin qu'il puisse continuer à travailler avec ses données protégées dans les sessions futures.

Avant que tu commences

  1. Ajoutez Firebase à votre projet iOS .
  2. Incluez les pods suivants dans votre Podfile :
    pod 'Firebase/Auth'
    
  3. Si vous n'avez pas encore connecté votre application à votre projet Firebase, faites-le depuis la console Firebase .
  4. Activer l'authentification anonyme:
    1. Dans la console Firebase , ouvrez la section Auth .
    2. Sur la page Méthodes de connexion, activez la méthode de connexion anonyme .

S'authentifier avec Firebase de manière anonyme

Lorsqu'un utilisateur déconnecté utilise une fonctionnalité d'application qui nécessite une authentification avec Firebase, connectez-vous anonymement en procédant comme suit:

  1. Importez le module Firebase dans votre UIApplicationDelegate :

    Rapide

    import Firebase

    Objectif c

    @import Firebase;
  2. Configurez une instance partagée FirebaseApp , généralement dans l'application de votre application:didFinishLaunchingWithOptions: method:

    Rapide

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

    Objectif c

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Appelez la méthode signInAnonymouslyWithCompletion: ::

    Rapide

    Auth.auth().signInAnonymously() { (authResult, error) in
      // ...
    }
    

    Objectif c

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Si la méthode signInAnonymouslyWithCompletion: termine sans erreur, vous pouvez obtenir les données de compte de l'utilisateur anonyme à partir de l'objet FIRAuthDataResult :

    Rapide

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    Objectif 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 souhaiterez peut-être lui permettre de continuer à travailler avec son nouveau compte. Par exemple, vous souhaiterez peut-être rendre disponibles les articles que l'utilisateur a ajoutés à son panier avant de s'inscrire dans leur nouveau panier d'achat du compte. Pour ce faire, procédez comme suit:

  1. Lorsque l'utilisateur s'inscrit, effectuez le FIRAuth.signInWith pour le fournisseur d'authentification de l'utilisateur jusqu'à, mais non compris, l'appel de l'une des méthodes FIRAuth.signInWith . Par exemple, obtenez le jeton d'identification Google, le jeton d'accès Facebook ou l'adresse e-mail et le mot de passe de l'utilisateur.
  2. Obtenez un FIRAuthCredential pour le nouveau fournisseur d'authentification:

    Connexion à Google
    Rapide
    guard let authentication = user.authentication else { return }
    let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                      accessToken: authentication.accessToken)
    
    Objectif c
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Identifiant Facebook
    Rapide
    let credential = FacebookAuthProvider.credential(withAccessToken: AccessToken.current!.tokenString)
    
    Objectif c
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    Connexion par e-mail et mot de passe
    Rapide
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Objectif c
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. FIRAuthCredential objet FIRAuthCredential à la méthode linkWithCredential:completion: utilisateur de linkWithCredential:completion: :

    Rapide
        user.link(with: credential) { (authResult, error) in
      // ...
    }
    }
    
    Objectif c
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

Si l'appel à linkWithCredential:completion: réussit, le nouveau compte de l'utilisateur peut accéder aux données Firebase du compte anonyme.

Prochaines étapes

Maintenant que les utilisateurs peuvent s'authentifier auprès de Firebase, vous pouvez contrôler leur accès aux données de votre base de données Firebase à l' aide des règles Firebase .