Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Puoi utilizzare Firebase Authentication per creare e utilizzare account anonimi temporanei
per eseguire l'autenticazione con Firebase. Questi account anonimi temporanei possono essere utilizzati per:
consenti agli utenti che non si sono ancora registrati alla tua app di lavorare con i dati protetti
in base alle regole di sicurezza. Se un utente anonimo decide di registrarsi alla tua app, puoi
collegare le proprie credenziali di accesso all'account anonimo in modo che
di poter continuare a lavorare con i propri dati protetti nelle sessioni future.
Nella sezione Autenticazione della console Firebase, apri il
Metodo di accesso
.
Nella pagina Metodo di accesso, attiva l'opzione Accesso anonimo.
e fai clic su Salva.
Eseguire l'autenticazione con Firebase in forma anonima
Quando un utente che non ha eseguito l'accesso utilizza una funzionalità dell'app che richiede l'autenticazione con
Firebase, accedi all'utente in modo anonimo chiamando il numero signInAnonymously():
try{finaluserCredential=awaitFirebaseAuth.instance.signInAnonymously();print("Signed in with temporary account.");}onFirebaseAuthExceptioncatch(e){switch(e.code){case"operation-not-allowed":print("Anonymous auth hasn't been enabled for this project.");break;default:print("Unknown error.");}}
Convertire un account anonimo in un account permanente
Quando un utente anonimo si registra alla tua app, potresti volergli consentire di continuare a lavorare con il suo nuovo account. Ad esempio, potresti rendere disponibili nel carrello del nuovo account gli articoli che l'utente ha aggiunto al carrello prima di registrarsi. Per farlo, completa i seguenti passaggi
passaggi:
Quando l'utente si registra, completa il flusso di accesso per
di autenticazione fino alla chiamata di uno dei
signInWith - metodi. Ad esempio, recupera il token ID Google dell'utente,
Token di accesso a Facebook o indirizzo email e password.
Ottieni un oggetto Credential per il nuovo provider di autenticazione:
// Google Sign-infinalcredential=GoogleAuthProvider.credential(idToken:idToken);// Email and password sign-infinalcredential=EmailAuthProvider.credential(email:emailAddress,password:password);// Etc.
Trasmetti l'oggetto Credential al valore linkWithCredential() dell'utente che ha eseguito l'accesso
:
try{finaluserCredential=awaitFirebaseAuth.instance.currentUser?.linkWithCredential(credential);}onFirebaseAuthExceptioncatch(e){switch(e.code){case"provider-already-linked":print("The provider has already been linked to the user.");break;case"invalid-credential":print("The provider's credential is not valid.");break;case"credential-already-in-use":print("The account corresponding to the credential already exists, ""or is already linked to a Firebase User.");break;// See the API reference for the full list of error codes.default:print("Unknown error.");}```
Se la chiamata a linkWithCredential() va a buon fine, il nuovo account dell'utente può accedere ai dati di Firebase dell'account anonimo.
Passaggi successivi
Dopo che un utente crea un nuovo account, questo viene memorizzato come parte del tuo
progetto Firebase e può essere utilizzato per identificare un utente in ogni app
indipendentemente dal metodo di accesso utilizzato dall'utente.
Nelle tue app puoi ottenere le informazioni di base del profilo dell'utente dal
User oggetto. Vedi Gestire gli utenti.
In Firebase Realtime Database e regole di sicurezza di Cloud Storage, puoi
recupera l'ID utente unico dell'utente che ha eseguito l'accesso dalla variabile auth e utilizzalo per
controllare a quali dati può accedere un utente.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-25 UTC."],[],[],null,["# Authenticate with Firebase Anonymously\n\n\u003cbr /\u003e\n\nYou can use Firebase Authentication to create and use temporary anonymous accounts\nto authenticate with Firebase. These temporary anonymous accounts can be used to\nallow users who haven't yet signed up to your app to work with data protected\nby security rules. If an anonymous user decides to sign up to your app, you can\n[link their sign-in credentials](/docs/auth/flutter/account-linking) to the anonymous account so\nthat they can continue to work with their protected data in future sessions.\n\nBefore you begin\n----------------\n\n1. If you haven't already, follow the steps in the [Get started](/docs/auth/flutter/start) guide.\n\n2. Enable Anonymous sign-in:\n\n - In the Firebase console's **Authentication** section, open the [Sign in method](https://console.firebase.google.com/project/_/authentication/providers) page.\n - From the **Sign in method** page, enable the **Anonymous sign-in** method and click **Save**.\n\nAuthenticate with Firebase anonymously\n--------------------------------------\n\nWhen a signed-out user uses an app feature that requires authentication with\nFirebase, sign in the user anonymously by calling `signInAnonymously()`: \n\n try {\n final userCredential =\n await FirebaseAuth.instance.signInAnonymously();\n print(\"Signed in with temporary account.\");\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"operation-not-allowed\":\n print(\"Anonymous auth hasn't been enabled for this project.\");\n break;\n default:\n print(\"Unknown error.\");\n }\n }\n\n| **Note:** To protect your project from abuse, Firebase limits the number of new email/password and anonymous sign-ups that your application can have from the same IP address in a short period of time. You can request and schedule temporary changes to this quota from the [Firebase console](https://console.firebase.google.com/project/_/authentication/providers).\n\nConvert an anonymous account to a permanent account\n---------------------------------------------------\n\nWhen an anonymous user signs up to your app, you might want to allow them to\ncontinue their work with their new account---for example, you might want to\nmake the items the user added to their shopping cart before they signed up\navailable in their new account's shopping cart. To do so, complete the following\nsteps:\n\n1. When the user signs up, complete the sign-in flow for the user's\n authentication provider up to, but not including, calling one of the\n `signInWith`- methods. For example, get the user's Google ID token,\n Facebook access token, or email address and password.\n\n2. Get a `Credential` object for the new authentication provider:\n\n // Google Sign-in\n final credential = GoogleAuthProvider.credential(idToken: idToken);\n\n // Email and password sign-in\n final credential =\n EmailAuthProvider.credential(email: emailAddress, password: password);\n\n // Etc.\n\n3. Pass the `Credential` object to the sign-in user's `linkWithCredential()`\n method:\n\n try {\n final userCredential = await FirebaseAuth.instance.currentUser\n ?.linkWithCredential(credential);\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"provider-already-linked\":\n print(\"The provider has already been linked to the user.\");\n break;\n case \"invalid-credential\":\n print(\"The provider's credential is not valid.\");\n break;\n case \"credential-already-in-use\":\n print(\"The account corresponding to the credential already exists, \"\n \"or is already linked to a Firebase User.\");\n break;\n // See the API reference for the full list of error codes.\n default:\n print(\"Unknown error.\");\n }\n ```\n\nIf the call to `linkWithCredential()` succeeds, the user's new account can\naccess the anonymous account's Firebase data.\n| **Note:** This technique can also be used to [link any two accounts](/docs/auth/flutter/account-linking).\n\nNext steps\n----------\n\nAfter a user creates a new account, this account is stored as part of your\nFirebase project, and can be used to identify a user across every app in your\nproject, regardless of what sign-in method the user used.\n\nIn your apps, you can get the user's basic profile information from the\n`User` object. See [Manage Users](/docs/auth/flutter/manage-users).\n\nIn your Firebase Realtime Database and Cloud Storage Security Rules, you can\nget the signed-in user's unique user ID from the `auth` variable, and use it to\ncontrol what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials](/docs/auth/flutter/account-linking)) to an\nexisting user account.\n\nTo sign out a user, call `signOut()`: \n\n await FirebaseAuth.instance.signOut();"]]