Utiliser l'extension Supprimer les données utilisateur
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'extension Delete User Data (Supprimer les données utilisateur) delete-user-data vous permet de supprimer les données d'un utilisateur lorsque celui-ci est supprimé de votre projet Firebase. Vous pouvez configurer cette extension pour supprimer les données utilisateur de tout ou partie des éléments suivants : Cloud Firestore, Realtime Database ou Cloud Storage. Chaque déclencheur de l'extension permettant de supprimer des données est associé au UserId de l'utilisateur.
Cette extension est utile pour respecter la confidentialité des utilisateurs et répondre aux exigences de conformité. Toutefois, l'utilisation de cette extension ne garantit pas la conformité avec les réglementations gouvernementales et sectorielles.
Cette extension ne supprime les données que de Cloud Firestore, Realtime Database et Cloud Storage. Si vous stockez des données utilisateur ailleurs, vous devez également les supprimer de ces sources lorsque vous supprimez des utilisateurs.
Installer l'extension
Pour installer l'extension, suivez les étapes décrites sur la page Installer l'extension Firebase. En résumé, effectuez l'une des opérations suivantes :
Console Firebase : cliquez sur le bouton suivant :
Lors de l'installation de l'extension, vous serez invité à spécifier un certain nombre de paramètres de configuration :
Emplacement Cloud Functions :
Sélectionnez l'emplacement où vous souhaitez déployer les fonctions créées pour cette extension. En général, vous choisissez un emplacement proche de votre base de données. Pour obtenir de l'aide sur la sélection d'un emplacement, consultez le guide de sélection des emplacements.
Chemins Cloud Firestore :
Quels chemins d'accès de votre instance Cloud Firestore contiennent des données utilisateur ? Laissez ce champ vide si vous n'utilisez pas Cloud Firestore. Saisissez les chemins complets, séparés par une virgule. Vous pouvez représenter l'ID utilisateur de l'utilisateur supprimé avec {UID}. Par exemple, si vous avez les collections users et admins, et que chaque collection comporte des documents dont l'ID utilisateur est l'ID du document, vous pouvez saisir users/{UID},admins/{UID}.
Mode de suppression Cloud Firestore :
(ne s'applique que si vous utilisez le paramètre Cloud Firestore paths) ? Comment souhaitez-vous supprimer les documents Cloud Firestore ? Pour supprimer également les documents des sous-collections, définissez ce paramètre sur recursive.
Instance Realtime Database :
De quelle instance Realtime Database souhaitez-vous supprimer les données utilisateur ?
Emplacement Realtime Database :
(Ne s'applique que si vous avez fourni le paramètre Realtime Database instance.) À partir de quel emplacement Realtime Database souhaitez-vous supprimer les données utilisateur ?
Chemins Realtime Database :
Quels chemins d'accès dans votre instance Realtime Database contiennent des données utilisateur ? Laissez ce champ vide si vous n'utilisez pas Realtime Database. Saisissez les chemins complets, séparés par une virgule. Vous pouvez représenter l'ID utilisateur de l'utilisateur supprimé avec {UID}. Exemple : users/{UID},admins/{UID}.
Chemins Cloud Storage :
Où stockez-vous les données utilisateur dans Google Cloud Storage ? Laissez ce champ vide si vous n'utilisez pas Cloud Storage. Saisissez les chemins d'accès complets aux fichiers ou répertoires de vos buckets Storage, en les séparant par une virgule. Utilisez {UID} pour représenter l'ID utilisateur de l'utilisateur supprimé et {DEFAULT} pour représenter votre bucket Storage par défaut.
Voici une série d'exemples :
Pour supprimer tous les fichiers de votre bucket par défaut avec le schéma de dénomination de fichier {UID}-pic.png, saisissez {DEFAULT}/{UID}-pic.png.
Pour supprimer également tous les fichiers d'un autre bucket appelé my-app-logs avec le schéma de dénomination de fichier {UID}-logs.txt, saisissez {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
Pour également supprimer un répertoire portant un libellé d'ID utilisateur et tous ses fichiers (comme media/{UID}), saisissez {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.
Détecter les données à supprimer
Cette extension utilise plusieurs mécanismes pour identifier les données à supprimer. Ces mécanismes doivent être configurés explicitement pour que l'extension puisse supprimer des données. L'extension ne supprimera que les données explicitement configurées pour être supprimées en fonction des mécanismes fournis.
Tenez compte des différences de comportement suivantes entre les services :
Cloud Firestore : le comportement par défaut consiste à supprimer un document en surface (les sous-collections ne sont pas supprimées). Pour supprimer de manière récursive toutes les sous-collections d'un document, définissez l'option "Mode de suppression Cloud Firestore" sur "Récursif".
Realtime Database : toutes les données du nœud spécifié seront supprimées.
Stockage : si un chemin d'accès à un répertoire est spécifié, tous les fichiers et sous-répertoires seront supprimés.
Par chemin
Lorsque vous configurez les chemins d'accès Cloud Firestore, Realtime Database et Cloud Storage, vous pouvez définir une variable UID dans les chemins d'accès, qui sera remplacée par l'UID de l'utilisateur authentifié. Lorsqu'un utilisateur est supprimé, l'extension supprime toutes les données associées à cet UID dans les chemins d'accès indiqués. Par exemple :
Pour permettre à l'extension de découvrir automatiquement les documents Firestore à supprimer, définissez le paramètre de configuration "Enable auto discovery" (Activer la découverte automatique) sur "Yes" (Oui).
La découverte automatique fonctionne en parcourant automatiquement la base de données pour trouver les collections et les documents qui doivent être supprimés en fonction de votre configuration. L'extension identifie ces collections et documents selon la méthodologie suivante :
L'extension trouve d'abord toutes les collections racines de la base de données. Si l'ID d'une collection correspond à l'UID de l'utilisateur, l'intégralité de la collection est supprimée (la suppression est récursive ou superficielle, selon la configuration de l'extension pour le "mode de suppression Cloud Firestore").
Deuxièmement, si l'ID de la collection ne correspond pas, l'extension tentera d'identifier et de supprimer un document si son ID correspond à celui de l'UID de l'utilisateur.
Enfin, pour chaque document :
a. Si la profondeur de recherche actuelle (voir ci-dessous) est inférieure ou égale à la profondeur de recherche configurée, le processus est répété pour toutes les sous-collections du document actuel.
b. Si des champs de recherche ont été configurés, l'extension vérifie si les champs fournis correspondent à l'UID de l'utilisateur. Si une correspondance est trouvée, le document sera supprimé.
Étendue de la recherche
L'extension propose une valeur de profondeur de recherche configurable (3 par défaut). La traversée ne sera exécutée que si la profondeur de recherche actuelle est inférieure ou égale à la profondeur de recherche configurée. La profondeur de recherche actuelle est basée sur la profondeur de la collection actuelle ou de la collection parente des documents. Par exemple :
Cette extension ne supprimera PAS automatiquement les UID stockés dans des tableaux ou des cartes, et elle ne recherchera pas les données indexées par ID utilisateur stockées dans des sous-collections profondément imbriquées au-delà de la profondeur spécifiée ci-dessus.
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 2025/07/25 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]