Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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 vous inscrire à votre application, vous pouvez lier leur informations de connexion au compte anonyme afin qu'ils puissent continuer à travailler avec leurs données protégées dans les sessions futures.

Avant que tu commences

  1. Ajouter Firebase à votre projet C ++ .
  2. Si vous n'êtes pas encore connecté votre application à votre projet Firebase, faites à partir de la console Firebase .
  3. Activer l'authentification anonyme :
    1. Dans la console Firebase , ouvrez la section Auth.
    2. Sur la page de connexion méthodes, activez le signe dans Anonyme méthode.

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 :

La Auth classe est la passerelle pour tous les appels API.
  1. Ajoutez les fichiers d' en- tête et Auth App:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Dans votre code d'initialisation, créez un firebase::App classe.
    #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. Acquérir les firebase::auth::Auth classe pour votre firebase::App . Il y a un à un entre les App et Auth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Appelez Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Si votre programme est une boucle de mise à jour qui fonctionne régulièrement (disons à 30 ou 60 fois par seconde), vous pouvez vérifier les résultats une fois par jour avec Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    Ou, si votre programme est l' événement commandé, vous pouvez préférer pour enregistrer un rappel sur l'avenir .
  • Convertir un compte anonyme en compte permanent

    Lorsqu'un utilisateur anonyme s'inscrit à votre application, vous souhaiterez peut-être lui permettre de continuer son travail avec son nouveau compte. panier d'achat du compte. Pour ce faire, procédez comme suit :

    1. Lorsque l'utilisateur se connecte vers le haut, complètent le flux de connexion pour le fournisseur d'authentification de l'utilisateur jusqu'à, mais sans inclure, en appelant l' un des Auth::SignInWith méthodes. 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 auth::Credential pour le nouveau fournisseur d'authentification:

      Google Sign-In
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook Connectez - vous
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      Email mot de passe de connexion
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. Passez le auth::Credential objet à la page de connexion de l' utilisateur LinkWithCredential méthode:

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

    Si l'appel à LinkWithCredential réussit, un nouveau compte peut accéder aux données Firebase du compte anonyme de l'utilisateur.

    Prochaines étapes

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