Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'estensione Elimina dati utente (delete-user-data) ti consente di eliminare i dati di un utente quando l'utente viene eliminato dal tuo progetto Firebase. Puoi configurare questa estensione per eliminare i dati utente da uno o tutti i seguenti servizi: Cloud Firestore, Realtime Database o Cloud Storage. Ogni attivazione dell'estensione per eliminare i dati è associata al UserId dell'utente.
Questa estensione è utile per rispettare la privacy degli utenti e soddisfare i requisiti di conformità. Tuttavia, l'utilizzo di questa estensione non garantisce la conformità alle normative governative e di settore.
Questa estensione elimina i dati solo da Cloud Firestore, Realtime Database e Cloud Storage. Se memorizzi i dati utente altrove, devi eliminarli anche da queste origini quando elimini gli utenti.
Installare l'estensione
Per installare l'estensione, segui i passaggi nella pagina Installa l'estensione Firebase. In sintesi, esegui una delle seguenti operazioni:
Durante l'installazione dell'estensione, ti verrà chiesto di specificare una serie di parametri di configurazione:
Località di Cloud Functions:
Seleziona la posizione in cui vuoi eseguire il deployment delle funzioni create per questa estensione. In genere, è preferibile una località vicina al database. Per assistenza nella selezione di una località, consulta la guida alla selezione della località.
Percorsi Cloud Firestore:
Quali percorsi nell'istanza Cloud Firestore contengono dati utente? Lascia vuoto se non utilizzi Cloud Firestore. Inserisci i percorsi completi, separati da virgole. Puoi rappresentare l'ID utente dell'utente eliminato con {UID}. Ad esempio, se hai le raccolte users e admins e ogni raccolta contiene documenti con l'ID utente come ID documento, puoi inserire users/{UID},admins/{UID}.
Modalità di eliminazione di Cloud Firestore:
(Applicabile solo se utilizzi il parametro Cloud Firestore paths.) Come vuoi eliminare i documenti Cloud Firestore? Per eliminare anche i documenti nelle raccolte secondarie, imposta questo parametro su recursive.
Istanza di Realtime Database:
Da quale istanza di Realtime Database vuoi eliminare i dati utente?
Località di Realtime Database:
(Applicabile solo se hai fornito il parametro Realtime Database instance.) Da quale località Realtime Database vuoi eliminare i dati utente?
Percorsi Realtime Database:
Quali percorsi nell'istanza di Realtime Database contengono dati utente? Lascia vuoto se non utilizzi Realtime Database. Inserisci i percorsi completi, separati da virgole. Puoi rappresentare l'ID utente dell'utente eliminato con {UID}. Ad esempio: users/{UID},admins/{UID}.
Percorsi Cloud Storage:
In quale posizione di Google Cloud Storage vengono archiviati i dati utente? Lascia il campo vuoto se non utilizzi Cloud Storage. Inserisci i percorsi completi di file o directory nei bucket Storage, separati da virgole. Utilizza {UID} per rappresentare l'ID utente dell'utente eliminato e {DEFAULT} per rappresentare il bucket di archiviazione predefinito.
Ecco una serie di esempi:
Per eliminare tutti i file nel bucket predefinito con lo schema di denominazione dei file {UID}-pic.png, inserisci {DEFAULT}/{UID}-pic.png.
Per eliminare anche tutti i file in un altro bucket denominato my-app-logs con lo schema di denominazione dei file {UID}-logs.txt, inserisci {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
Per eliminare anche una directory con etichetta ID utente e tutti i relativi file (ad esempio media/{UID}), inserisci {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.
Rilevamento dei dati da eliminare
Questa estensione utilizza alcuni meccanismi per rilevare i dati da eliminare. Questi meccanismi devono essere configurati in modo esplicito affinché l'estensione possa eliminare i dati. L'estensione eliminerà solo i dati configurati esplicitamente per l'eliminazione in base ai meccanismi forniti.
Tieni presente le seguenti differenze di comportamento tra i due servizi:
Cloud Firestore: il comportamento predefinito è l'eliminazione superficiale di un documento (le raccolte secondarie non verranno eliminate). Per eliminare in modo ricorsivo tutte le raccolte secondarie di un documento, imposta l'opzione "Modalità di eliminazione di Cloud Firestore" su "Ricorsiva".
Realtime Database: tutti i dati nel nodo specificato verranno eliminati.
Archiviazione: se viene specificato un percorso di directory, verranno eliminati tutti i file e le sottodirectory.
Per percorso
Quando configuri i percorsi Cloud Firestore, Realtime Database e Cloud Storage, puoi definire una variabile UID nei percorsi che verrà sostituita con l'UID dell'utente autenticato. Quando un utente viene eliminato, l'estensione elimina tutti i dati associati a quell'UID nei percorsi specificati, ad esempio:
Percorso o percorsi Cloud Firestore: users/{UID},admins/{UID}
Percorso/i Realtime Database: likes/{UID}
Percorso o percorsi Cloud Storage: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
Individuazione automatica (Cloud Firestore)
Per consentire all'estensione di rilevare automaticamente i documenti Firestore da eliminare, imposta il parametro di configurazione "Enable auto discovery" (Attiva rilevamento automatico) su "Yes" (Sì).
Il rilevamento automatico funziona attraversando automaticamente il database per trovare raccolte e documenti che devono essere eliminati in base alla configurazione. L'estensione identifica queste raccolte e questi documenti con la seguente metodologia:
Innanzitutto, l'estensione trova tutte le raccolte principali nel database. Se l'ID di una raccolta corrisponde a quello dell'UID dell'utente, l'intera raccolta viene eliminata (l'eliminazione è ricorsiva o superficiale, a seconda della configurazione delle estensioni per la "Modalità di eliminazione di Cloud Firestore").
In secondo luogo, se l'ID raccolta non corrisponde, l'estensione tenterà di identificare ed eliminare un documento se il suo ID documento corrisponde a quello dell'UID dell'utente.
Infine, per ogni documento:
a. Se la profondità di ricerca attuale (vedi sotto) è inferiore o uguale alla profondità di ricerca configurata, il processo verrà ripetuto per tutte le sottoraccolte del documento corrente.
b. Se sono stati configurati campi di ricerca, l'estensione verifica se i campi forniti corrispondono all'UID dell'utente. Se viene trovata una corrispondenza, il documento verrà eliminato.
Profondità della ricerca
L'estensione offre un valore di profondità di ricerca configurabile (impostato su 3 per impostazione predefinita). L'attraversamento verrà eseguito solo se la profondità di ricerca attuale è inferiore o uguale alla profondità di ricerca configurata. La profondità di ricerca attuale si basa sulla profondità della raccolta corrente o della raccolta principale dei documenti, ad esempio
Questa estensione NON elimina automaticamente gli UID archiviati in array o mappe e non cerca dati indicizzati per ID utente archiviati in sottoraccolte nidificate in profondità oltre il livello specificato sopra.
[[["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,["\u003cbr /\u003e\n\nThe Delete User Data extension (`delete-user-data`) lets you delete a user's data when the user is deleted from your Firebase project. You can configure this extension to delete user data from any or all of the following: Cloud Firestore, Realtime Database, or Cloud Storage. Each trigger of the extension to delete data is keyed to the user's `UserId`.\n| **Note:** To use this extension, you need to manage your users with Firebase Authentication.\n\nThis extension is useful for respecting user privacy and fulfilling compliance requirements. However, using this extension does not guarantee compliance with government and industry regulations.\n\nPrerequisites\n\n- You must use [Firebase Authentication](https://firebase.google.com/docs/auth) to manage your users.\n\n- This extension only deletes data from [Cloud Firestore](https://firebase.google.com/docs/firestore), [Realtime Database](https://firebase.google.com/docs/database), and [Cloud Storage](https://firebase.google.com/docs/storage). If you store user data elsewhere, you should also delete user data from those sources when you delete users.\n\nInstall the extension\n\nTo install the extension, follow the steps on the [Install Firebase Extension](https://firebase.google.com/docs/extensions/install-extensions) page. In summary, do one of the following:\n\n- **Firebase console:** Click the following button:\n\n [Install the Delete User Data extension](https://console.firebase.google.com/project/_/extensions/install?ref=firebase%2Fdelete-user-data)\n- **CLI:** Run the following command:\n\n firebase ext:install firebase/delete-user-data --project=\u003cvar translate=\"no\"\u003eprojectId-or-alias\u003c/var\u003e\n\nDuring the installation of the extension, you will be prompted to specify a number of configuration parameters:\n\n- **Cloud Functions location:**\n\n Select the location of where you want to deploy the functions created for this extension. You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).\n- **Cloud Firestore paths:**\n\n Which paths in your Cloud Firestore instance contain user data? Leave empty if you don't use Cloud Firestore. Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`. For example, if you have the collections `users` and `admins`, and each collection has documents with the User ID as document IDs, then you can enter `users/{UID},admins/{UID}`.\n- **Cloud Firestore delete mode:**\n\n (Only applicable if you use the `Cloud Firestore paths` parameter.) How do you want to delete Cloud Firestore documents? To also delete documents in subcollections, set this parameter to `recursive`.\n- **Realtime Database instance:**\n\n From which Realtime Database instance do you want to delete user data?\n- **Realtime Database location:**\n\n (Only applicable if you provided the `Realtime Database instance` parameter.) From which Realtime Database location do you want to delete user data?\n- **Realtime Database paths:**\n\n Which paths in your Realtime Database instance contain user data? Leave empty if you don't use Realtime Database. Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`. For example: `users/{UID},admins/{UID}`.\n- **Cloud Storage paths:**\n\n Where in Google Cloud Storage do you store user data? Leave empty if you don't use Cloud Storage. Enter the full paths to files or directories in your Storage buckets, separated by commas. Use `{UID}` to represent the User ID of the deleted user, and use `{DEFAULT}` to represent your default Storage bucket.\n\n Here's a series of examples:\n - To delete all the files in your default bucket with the file naming scheme `{UID}-pic.png`, enter `{DEFAULT}/{UID}-pic.png`.\n - To also delete all the files in another bucket called `my-app-logs` with the file naming scheme `{UID}-logs.txt`, enter `{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt`.\n - To *also* delete a User ID-labeled directory and all its files (like `media/{UID}`), enter `{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}`.\n\nDiscovering data for deletion\n\nThere are a few mechanisms that this extension uses to discover data for deletion. These mechanisms have to be explicitly configured for the extension to delete data. The extension will only delete data that is explicitly configured to delete based on the mechanisms provided.\n\nBe aware of the following behavioral differences between each service:\n\n- Cloud Firestore: the default behavior is to shallow delete a document (sub-collections will not be deleted). To recursively delete all sub-collections of a document, set the \"Cloud Firestore delete mode\" option to \"Recursive\".\n- Realtime Database: all data at the specified node will be deleted.\n- Storage: if a directory path is specified, all files and sub-directories will be deleted.\n\nBy path\n\nWhen configuring the Cloud Firestore, Realtime Database \\& Cloud Storage paths, it's possible to define a `UID` variable in the paths which will be replaced with the authenticated user's UID. When a user is deleted, the extension will delete all data keyed on that UID at the given paths, for example:\n\n- Cloud Firestore path(s): `users/{UID},admins/{UID}`\n- Realtime Database path(s): `likes/{UID}`\n- Cloud Storage path(s): `{DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg`\n\nAuto Discovery (Cloud Firestore)\n\nTo enable the extension to automatically discover Firestore documents to delete, set the \"Enable auto discovery\" configuration parameter to \"Yes\".\n\nAuto-discovery works by automatically traversing the database to find collections and documents which should be deleted according to your configuration. The extension identifies those collections and documents with the following methodology:\n\n1. First, the extension finds all root collections in the database. If a collection's ID matches that of the user's UID, the entire collection is deleted (deletion is either recursive or shallow, depending on the extensions's configuration for \"Cloud Firestore delete mode\").\n2. Secondly, if the collection ID does not match, the extension will attempt to identify and delete a document if its document ID matches that of the user's UID.\n3. Finally, for each document: a. If the current search depth (see below) is less than or equal to the configured search depth, the process will be repeated for all of the current document's sub-collections. b. If search fields have been configured, the extension will check if the provided fields match the user's UID. If a match is found, the document will be deleted.\n\nSearch Depth\n\nThe extension offers a configurable search depth value (defaulting to 3). Traversal will only be executed if the current search depth is less than or equal to the configured search depth. The current search depth is based on the depth of the current collection or documents parent collection, for example \n\n /users = 1\n /users/\u003cdocument-id\u003e = 1\n /users/\u003cdocument-id\u003e/comments = 2\n /users/\u003cdocument-id\u003e/comments/\u003cdocument-id\u003e = 2\n\nThis extension will NOT automatically delete UIDs stored in arrays or maps, and it will not search for data keyed by user ID stored in deeply nested subcollections past the depth specified above.\n| **Note:** with large databases, traversal-based discovery may incur many reads and deletions since it reads all documents in the corresponding collections. Please be aware of Cloud Firestore billing prices and how this might impact you. Auto discovery is completely optional."]]