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 l'extension pour supprimer des données est associé à l'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. En général, il est préférable de choisir un emplacement proche 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 :
(ne s'applique que 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 Firebase Realtime Database :
De quelle instance Realtime Database souhaitez-vous supprimer les données utilisateur ?
Emplacement de Realtime Database:
(Applicable uniquement 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 d'accès de 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 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 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 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 configurés explicitement pour que l'extension puisse supprimer les 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 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 à un répertoire est spécifié, tous les fichiers et sous-répertoires seront 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 utilisateur est supprimé, l'extension supprime toutes les données associées à cet UID dans les chemins d'accès donnés, par exemple:
- Chemin(s) Cloud Firestore :
users/{UID},admins/{UID}
- Chemin(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étecter automatiquement les documents Firestore à supprimer, définissez le paramètre de configuration "Enable auto discovery" (Activer la détection automatique) sur "Yes" (Oui).
La découverte automatique consiste à parcourir 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, l'ensemble de la collection est supprimé (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 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 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 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.