Vous pouvez utiliser Firebase Authentication 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 identifiants de connexion au compte anonyme afin qu'il puisse continuer à utiliser ses données protégées lors de sessions futures.
Avant que tu commences
- Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Android .
- Dans le fichier Gradle de votre module (au niveau de l'application) (généralement
<project>/<app-module>/build.gradle
), ajoutez la dépendance pour la bibliothèque Firebase Authentication Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler la gestion des versions de la bibliothèque.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth-ktx' }
En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM
Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth-ktx:22.0.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth' }
En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM
Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth:22.0.0' }
- 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 .
- 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 seront automatiquement supprimés. Dans les projets où le nettoyage automatique est activé, l'authentification anonyme ne comptera plus dans les limites d'utilisation ou les quotas de facturation. Voir Nettoyage automatique .
Authentifiez-vous anonymement auprès de Firebase
Lorsqu'un utilisateur déconnecté utilise une fonctionnalité d'application qui nécessite une authentification auprès de Firebase, connectez-le de manière anonyme en procédant comme suit :
- Dans la méthode
onCreate
de votre activité, récupérez l'instance partagée de l'objetFirebaseAuth
:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Lors de l'initialisation de votre activité, vérifiez si l'utilisateur est actuellement connecté :
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser updateUI(currentUser) }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); updateUI(currentUser); }
- Enfin, appelez
signInAnonymously
pour vous connecter en tant qu'utilisateur anonyme :Si la connexion réussit, vous pouvez utiliser la méthodeKotlin+KTX
auth.signInAnonymously() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInAnonymously() .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
getCurrentUser
pour obtenir les données du compte de l'utilisateur.
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 que les articles que l'utilisateur a ajoutés à son panier avant de s'inscrire soient disponibles dans son nouveau compte. 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, l'appel de l'une des méthodes
FirebaseAuth.signInWith
. Par exemple, obtenez le jeton d'identification Google de l'utilisateur, le jeton d'accès Facebook ou l'adresse e-mail et le mot de passe. Obtenez un
AuthCredential
pour le nouveau fournisseur d'authentification :Connexion Google
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
Identifiant Facebook
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
Connexion par e-mail et mot de passe
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
Transmettez l'objet
AuthCredential
à la méthodelinkWithCredential
de l'utilisateur connecté :Kotlin+KTX
auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Log.d(TAG, "linkWithCredential:success") val user = task.result?.user updateUI(user) } else { Log.w(TAG, "linkWithCredential:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "linkWithCredential:success"); FirebaseUser user = task.getResult().getUser(); updateUI(user); } else { Log.w(TAG, "linkWithCredential:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Si l'appel à
linkWithCredential
réussit, le nouveau compte de l'utilisateur peut accéder aux données Firebase du compte anonyme.Nettoyage automatique
Si vous avez mis à niveau votre projet vers 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 de plus de 30 jours. Dans les projets où le nettoyage automatique est activé, l'authentification anonyme ne sera pas prise en compte dans les limites d'utilisation ou les quotas de facturation.
- Tous les comptes anonymes créés après l'activation du nettoyage automatique peuvent être automatiquement supprimés à tout moment après 30 jours après la création.
- Les comptes anonymes créés avant l'activation du nettoyage automatique pourront être supprimés automatiquement à partir de 30 jours après l'activation du nettoyage automatique.
- Si vous désactivez le nettoyage automatique, tous les comptes anonymes programmés pour être supprimés resteront programmés pour être supprimés. Ces comptes ne sont pas pris en compte dans les limites d'utilisation ou les quotas de facturation.
- Si vous "mettez à niveau" un compte anonyme en le liant à n'importe quelle méthode de connexion, le compte ne sera pas automatiquement supprimé.
Si vous souhaitez voir combien d'utilisateurs seront affecté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 Cloud Logging .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 .
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2023/06/10 (UTC).
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Il n'y a pas l'information dont j'ai besoin" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Trop compliqué/Trop d'étapes" },{ "type": "thumb-down", "id": "outOfDate", "label":"Obsolète" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problème de traduction" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Mauvais exemple/Erreur de code" },{ "type": "thumb-down", "id": "otherDown", "label":"Autre" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile à comprendre" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"J'ai pu résoudre mon problème" },{ "type": "thumb-up", "id": "otherUp", "label":"Autre" }]