L'extension "Supprimer les données utilisateur" (delete-user-data
) vous permet de supprimer les données d'un utilisateur lorsqu'il est supprimé de votre projet Firebase. Vous pouvez configurer cette extension pour supprimer les données utilisateur de l'un ou de tous les éléments suivants : Cloud Firestore, Realtime Database ou Cloud Storage. Chaque déclencheur de suppression de données de l'extension est associé au UserId
de l'utilisateur.
Cette extension est utile pour respecter la confidentialité des utilisateurs et respecter les 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 la procédure décrite 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 de Cloud Functions :
Sélectionnez l'emplacement où vous souhaitez déployer les fonctions créées pour cette extension. Vous souhaitez généralement un emplacement à proximité de votre base de données. Pour obtenir de l'aide pour sélectionner un emplacement, consultez le guide de sélection d'un emplacement.
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 contient des documents dont l'ID utilisateur est l'ID de document, vous pouvez saisirusers/{UID},admins/{UID}
.Mode de suppression Cloud Firestore :
(applicable uniquement si vous utilisez le paramètre
Cloud Firestore paths
.) Comment souhaitez-vous supprimer des 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 de Realtime Database :
(Ne s'applique que si vous avez fourni le paramètre
Realtime Database instance
.) De quel emplacement Realtime Database souhaitez-vous supprimer les données utilisateur ?Chemins Realtime Database :
Quels chemins de votre instance Realtime Database contiennent des données utilisateur ? Laissez ce champ vide si vous n'utilisez pas Realtime Database. Saisissez les chemins d'accès 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 d'accès 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 aux 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 de stockage par défaut.Voici une série d'exemples:
- Pour supprimer tous les fichiers de votre bucket par défaut avec le schéma d'attribution de nom 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 fichiers{UID}-logs.txt
, saisissez{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt
. - Pour également supprimer un répertoire associé à un 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 d'attribution de nom de fichier
Détecter les données à supprimer
Cette extension utilise plusieurs mécanismes pour découvrir les données à supprimer. Ces mécanismes doivent être explicitement configurés pour que l'extension puisse supprimer des données. L'extension ne supprime que les données qui sont explicitement configurées pour être supprimées en fonction des mécanismes fournis.
Tenez compte des différences de comportement suivantes entre chaque service :
- Cloud Firestore : le comportement par défaut consiste à supprimer un document de manière superficielle (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 au répertoire est spécifié, tous les fichiers et sous-répertoires sont supprimés.
Par chemin d'accès
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 compte utilisateur est supprimé, l'extension supprime toutes les données associées à cet UID aux chemins indiqués, par exemple:
- Chemin(s) d'accè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 "Activer la découverte automatique" sur "Oui".
La découverte automatique consiste à balayer automatiquement la base de données pour trouver les collections et les documents à supprimer en fonction de votre configuration. L'extension identifie ces collections et documents à l'aide de la méthodologie suivante:
- Tout d'abord, l'extension recherche toutes les collections racine dans la base de données. Si l'ID d'une collection correspond à celui de l'UID de l'utilisateur, la collection entière est supprimée (la suppression est récursive ou superficielle, en fonction de la configuration des extensions pour le "mode de suppression Cloud Firestore").
- Deuxièmement, si l'ID de la collection ne correspond pas, l'extension tente 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 est supprimé.
Étendue de la recherche
L'extension propose une valeur de profondeur de recherche configurable (par défaut, elle est définie sur 3). 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 celle 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 supprime PAS automatiquement les UID stockés dans des tableaux ou des cartes, et ne recherche pas les données associées à un ID utilisateur stockées dans des sous-collections profondément imbriquées au-delà de la profondeur spécifiée ci-dessus.