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.
Prérequis
Vous devez utiliser Firebase Authentication pour gérer vos utilisateurs.
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 :
CLI : exécutez la commande suivante :
firebase ext:install firebase/delete-user-data --project=projectId-or-alias
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 collectionsusers
etadmins
, et que chaque collection comporte des documents dont l'ID utilisateur est l'ID du document, vous pouvez saisirusers/{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 surrecursive
.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}
.
- Pour supprimer tous les fichiers de votre bucket par défaut avec le schéma de dénomination de fichier
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 :
- Chemin(s) Cloud Firestore :
users/{UID},admins/{UID}
- Chemin(s) d'accès Realtime Database :
likes/{UID}
- Chemin(s) Cloud Storage :
{DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
Détection automatique (Cloud Firestore)
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 :
/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2
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.