S'authentifier avec Firebase de manière anonyme à l'aide de C++

Vous pouvez utiliser Firebase Authentication pour créer et utiliser des comptes anonymes temporaires pour s'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 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

  1. Ajouter Firebase à votre environnement C++ projet.
  2. Si vous n'avez pas encore associé votre application à votre projet Firebase, faites-le depuis la console Firebase.
  3. Activez l'authentification anonyme :
    1. Dans la console Firebase, ouvrez la section Authentification.
    2. Sur la page Sign-in Methods (Méthodes de connexion), activez l'option Anonyme. méthode de connexion.
    3. Facultatif: Si vous avez mis à niveau votre projet vers Firebase Authentication with Identity Platform, vous pouvez activer le nettoyage automatique. Quand ? les comptes anonymes de plus de 30 jours 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. Voir Nettoyage automatique.

Authentifier des utilisateurs 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:

La classe Auth sert de passerelle pour tous les appels d'API.
  1. Ajoutez les fichiers d'en-tête Auth et App:
    #include "firebase/app.h"
    #include "firebase/auth.h"
  2. Dans votre code d'initialisation, créez un firebase::App.
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
  3. Obtenez la classe firebase::auth::Auth pour votre firebase::App. Il existe un mappage de type "un à un" entre App et Auth.
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
  • Appelez le Auth::SignInAnonymously.
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymously();
  • Si votre programme comporte une boucle de mise à jour qui s'exécute régulièrement (par exemple à 30 ou 60 fois par seconde), vous pouvez vérifier les résultats une fois par mise à jour avec Auth::SignInAnonymouslyLastResult:
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::AuthResult auth_result = *result.result();
        printf("Sign in succeeded for `%s`\n",
               auth_result.user.display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    Si votre programme est axé sur des événements, vous pouvez enregistrer un rappel sur la Futur.
  • 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 :

    1. Lorsque l'utilisateur s'inscrit, suivez la procédure de connexion d'authentification jusqu'à l'appel de l'un des Auth::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.
    2. Obtenez un auth::Credential pour le nouveau fournisseur d'authentification:

      Google Sign-In
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      Connexion à Facebook
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      Connexion par adresse e-mail et mot de passe
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
    3. Transmettez l'objet auth::Credential à l'interface utilisateur Méthode LinkWithCredential:

      // Link the new credential to the currently active user.
      firebase::auth::User current_user = auth->current_user();
      firebase::Future<firebase::auth::AuthResult> result =
          current_user.LinkWithCredential(credential);

    Si l'appel à LinkWithCredential 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. Lorsque vous activez cette fonctionnalité, vous autorisez Firebase à supprimer automatiquement les comptes anonymes datant de plus de 30 jours. Dans les projets pour lesquels le nettoyage automatique est activé, l'authentification anonyme n'est pas comptabilisée 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, tous les comptes anonymes dont la suppression est programmée seront conservés dont la suppression est planifiée.
    • Si vous passez à un forfait supérieur un compte anonyme en l'associant à une méthode de connexion quelconque, le compte ne sont pas automatiquement supprimées.

    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.