Utilisation de l'extension Supprimer les données utilisateur

L'extension Supprimer les données utilisateur ( delete-user-data ) vous permet de supprimer les données d'un utilisateur lorsque l'utilisateur 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 pour 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é. Cependant, l'utilisation de cette extension ne garantit pas le respect des réglementations gouvernementales et industrielles.

Conditions préalables

Installer l'extension

Pour installer l'extension, suivez les étapes de la page Installer l'extension Firebase . En résumé, effectuez l'une des opérations suivantes :

Lors de l'installation de l'extension, vous serez invité à spécifier un certain nombre de paramètres de configuration :

  • Emplacement des fonctions Cloud :

    Sélectionnez l'emplacement où vous souhaitez déployer les fonctions créées pour cette extension. Vous souhaitez généralement un emplacement proche de votre base de données. Pour obtenir de l'aide sur la sélection d'un emplacement, reportez-vous au guide de sélection d'emplacement .

  • Chemins Cloud Firestore :

    Quels chemins de votre instance Cloud Firestore contiennent des données utilisateur ? Laissez vide si vous n'utilisez pas Cloud Firestore. Entrez les chemins complets, séparés par des virgules. 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 contient des documents avec l'ID utilisateur comme ID de document, vous pouvez saisir users/{UID},admins/{UID} .

  • Mode de suppression de Cloud Firestore :

    (Uniquement applicable si vous utilisez le paramètre Cloud Firestore paths .) Comment souhaitez-vous supprimer les documents Cloud Firestore ? Pour supprimer également des documents dans des sous-collections, définissez ce paramètre sur recursive .

  • Instance de base de données en temps réel :

    De quelle instance de Realtime Database souhaitez-vous supprimer les données utilisateur ?

  • Emplacement de la base de données en temps réel :

    (Uniquement applicable si vous avez fourni le paramètre Realtime Database instance .) À partir de quel emplacement de base de données en temps réel souhaitez-vous supprimer les données utilisateur ?

  • Chemins de la base de données en temps réel :

    Quels chemins de votre instance Realtime Database contiennent des données utilisateur ? Laissez vide si vous n’utilisez pas Realtime Database. Entrez les chemins complets, séparés par des virgules. Vous pouvez représenter l'ID utilisateur de l'utilisateur supprimé avec {UID} . Par exemple : users/{UID},admins/{UID} .

  • Chemins de stockage cloud :

    Où dans Google Cloud Storage stockez-vous les données utilisateur ? Laissez vide si vous n'utilisez pas Cloud Storage. Saisissez les chemins d'accès complets aux fichiers ou répertoires dans vos buckets de stockage, séparés par des virgules. Utilisez {UID} pour représenter l'ID utilisateur de l'utilisateur supprimé et utilisez {DEFAULT} pour représenter votre compartiment de stockage par défaut.

    Voici une série d'exemples :

    • Pour supprimer tous les fichiers de votre compartiment 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 compartiment 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 supprimer également un répertoire portant l'ID utilisateur et tous ses fichiers (comme media/{UID} ), saisissez {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} .

Découverte des données à supprimer

Cette extension utilise quelques mécanismes pour découvrir les données à supprimer. Ces mécanismes doivent être explicitement configurés pour que l'extension supprime les données. L'extension supprimera uniquement les données explicitement configurées pour être supprimées en fonction des mécanismes fournis.

Soyez conscient des différences de comportement suivantes entre chaque service :

  • Cloud Firestore : le comportement par défaut consiste à supprimer superficiellement un document (les sous-collections ne seront 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 ».
  • Base de données en temps réel : toutes les données du nœud spécifié seront supprimées.
  • Stockage : si un chemin de répertoire est spécifié, tous les fichiers et sous-répertoires seront supprimés.

Par chemin

Lors de la configuration des chemins Cloud Firestore, Realtime Database & Cloud Storage, il est possible de définir une variable UID dans les chemins qui sera remplacée par l'UID de l'utilisateur authentifié. Lorsqu'un utilisateur est supprimé, l'extension supprimera toutes les données saisies sur cet UID aux chemins indiqués, par exemple :

  • Chemin(s) Cloud Firestore : users/{UID},admins/{UID}
  • Chemin(s) de la base de données en temps réel : likes/{UID}
  • Chemin(s) de stockage Cloud : {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

Découverte 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 fonctionne en parcourant automatiquement la base de données pour trouver les collections et les documents qui doivent être supprimés selon votre configuration. L'extension identifie ces collections et documents avec la méthodologie suivante :

  1. Tout d'abord, l'extension trouve 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 soit récursive, soit superficielle, selon la configuration des extensions pour le « mode de suppression Cloud Firestore »).
  2. Deuxièmement, si l'ID de collection ne correspond pas, l'extension tentera d'identifier et de supprimer un document si son ID de document correspond à celui de l'UID de l'utilisateur.
  3. 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 sera répété pour toutes les sous-collections du document actuel. b. Si des champs de recherche ont été configurés, l'extension vérifiera si les champs fournis correspondent à l'UID de l'utilisateur. Si une correspondance est trouvée, le document sera supprimé.

Profondeur de recherche

L'extension offre une valeur de profondeur de recherche configurable (par défaut à 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 parent de 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 saisies par ID utilisateur stockées dans des sous-collections profondément imbriquées au-delà de la profondeur spécifiée ci-dessus.