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 associer 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
- Ajoutez Firebase à votre projet C ++ .
- Si vous n'avez pas encore connecté votre application à votre projet Firebase, faites-le depuis la console Firebase .
- Activer l'authentification anonyme:
- Dans la console Firebase , ouvrez la section Auth .
- 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 de manière anonyme à l'utilisateur en procédant comme suit:
La classeAuth
est la passerelle pour tous les appels d'API.- Ajoutez les fichiers d'en-tête Auth et App:
#include "firebase/app.h" #include "firebase/auth.h"
- Dans votre code d'initialisation, créez une classe
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__)
- Acquérir la
firebase::auth::Auth
pour votrefirebase::App
. Il existe un mappage un à un entreApp
etAuth
.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInAnonymously
. firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
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 piloté par des événements, vous pouvez préférer vous inscrire un rappel sur le futur .
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:
- Lorsque l'utilisateur s'inscrit, terminez le flux de connexion pour le fournisseur d'authentification de l'utilisateur jusqu'à, mais non compris, en appelant l'une des méthodes
Auth::SignInWith
. Par exemple, obtenez le jeton d'identifiant Google de l'utilisateur, le jeton d'accès Facebook ou l'adresse e-mail et le mot de passe. Obtenez un
Connexion Googleauth::Credential
pour le nouveau fournisseur d'authentification:firebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
Connexion Facebookfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
Connexion par e-mail avec mot de passefirebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
auth::Credential
objetauth::Credential
à la méthodeLinkWithCredential
l'utilisateur deLinkWithCredential
:// 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, 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 .