Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A extensão "Excluir dados do usuário" (delete-user-data) permite excluir os dados de um usuário quando ele é excluído do projeto do Firebase. É possível configurar essa extensão para excluir dados do usuário de um ou de todos estes serviços: Cloud Firestore, Realtime Database ou Cloud Storage. Cada gatilho da extensão usada para excluir dados tem chaves no UserId do usuário.
Essa extensão é útil para respeitar a privacidade do usuário e atender aos requisitos de conformidade. Porém, ela não garante a conformidade com regulamentações do governo ou da indústria.
Essa extensão só exclui dados do Cloud Firestore, do Realtime Database e do Cloud Storage. Se você armazena dados de usuários em outro local, exclua também os dados dessas origens ao excluir usuários.
Instalar a extensão
Para instalar a extensão, siga as etapas na página Instalar a extensão do Firebase. Em resumo, siga um destes procedimentos:
Durante a instalação da extensão, você precisará especificar vários parâmetros de configuração:
Local do Cloud Functions:
Selecione o local em que você quer implantar as funções criadas para essa extensão. Normalmente, a melhor opção é um local que esteja perto do seu banco de dados. Se você precisar de ajuda para escolher um local, consulte o guia de seleção de local.
Caminhos do Cloud Firestore:
Quais caminhos na instância do Cloud Firestore contêm dados de usuário? Deixe em branco se você não usa o Cloud Firestore. Insira os caminhos completos separados por vírgulas. Para representar o ID do usuário excluído, use {UID}. Por exemplo, se você tiver as coleções users e admins, e cada coleção tiver documentos com o ID do usuário como IDs de documento, insira users/{UID},admins/{UID}.
Modo de exclusão do Cloud Firestore:
Aplicável apenas se você usar o parâmetro Cloud Firestore paths. Como você quer excluir documentos do Cloud Firestore? Para excluir também documentos de subcoleções, defina esse parâmetro como recursive.
Instância do Realtime Database:
Em quais instância do Realtime Database você quer excluir os dados do usuário?
Local do Realtime Database:
Aplicável apenas se você tiver fornecido o parâmetro Realtime Database instance. De quais instância do Realtime Database você quer excluir os dados do usuário?
Caminhos do Realtime Database:
Quais caminhos na instância do Realtime Database contêm dados de usuário? Deixe em branco se você não usa o Realtime Database. Insira os caminhos completos separados por vírgulas. Para representar o ID do usuário excluído, use {UID}. Por exemplo, users/{UID},admins/{UID}.
Caminhos do Cloud Storage:
Em que local do Google Cloud Storage você armazena dados de usuários? Deixe em branco se você não usa o Cloud Storage. Insira os caminhos completos para arquivos ou diretórios nos buckets do Storage, separados por vírgulas. Use {UID} para representar o ID do usuário excluído e use {DEFAULT} para representar o bucket padrão do Storage.
Veja alguns exemplos:
Para excluir todos os arquivos do bucket padrão com o esquema de nomenclatura de arquivos {UID}-pic.png, insira {DEFAULT}/{UID}-pic.png.
Para excluir também todos os arquivos em outro bucket chamado my-app-logs com o esquema de nomenclatura do arquivo {UID}-logs.txt, insira {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
Para excluir também um diretório marcado com o ID do usuário e todos os arquivos dele (como media/{UID}), insira {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.
Como descobrir dados para exclusão
Essa extensão usa alguns mecanismos para descobrir dados para exclusão. Esses mecanismos precisam ser configurados explicitamente para que a extensão exclua dados. A extensão só vai excluir dados configurados explicitamente para isso com base nos mecanismos fornecidos.
Lembre-se das seguintes diferenças comportamentais entre cada serviço:
Cloud Firestore: o comportamento padrão é a exclusão superficial de um documento (subcoleções não serão excluídas). Para excluir recursivamente todas as subcoleções de um documento, defina a opção "Modo de exclusão do Cloud Firestore" como "Recursivo".
Realtime Database: todos os dados do nó especificado serão excluídos.
Storage: se um caminho de diretório for especificado, todos os arquivos e subdiretórios serão excluídos.
Por caminho
Ao configurar os caminhos do Cloud Firestore, do Realtime Database e do Cloud Storage, é possível definir uma variável UID nos caminhos que serão substituídos pelo UID do usuário autenticado. Quando um usuário é excluído, a extensão exclui todos os dados com chaves nesse UID nos caminhos especificados. Por exemplo:
Caminhos do Cloud Firestore: users/{UID},admins/{UID}
Caminhos do Realtime Database: likes/{UID}
Caminhos do Cloud Storage: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
Descoberta automática (Cloud Firestore)
Para que a extensão descubra automaticamente os documentos do Firestore que serão excluídos, defina o parâmetro de configuração "Ativar descoberta automática" como "Sim".
A descoberta automática navega automaticamente pelo banco de dados para encontrar coleções e documentos que precisem ser excluídos de acordo com a configuração. A extensão identifica essas coleções e documentos com a seguinte metodologia:
Primeiro, a extensão encontra todas as coleções raiz no banco de dados. Se o ID de uma coleção corresponder ao do UID do usuário, toda a coleção será excluída. A exclusão é recursiva ou superficial, dependendo da configuração das extensões do "modo de exclusão do Cloud Firestore".
Em segundo lugar, se o ID da coleção não corresponder, a extensão tentará identificar e excluir um documento se o ID do documento corresponder ao do UID do usuário.
Por fim, para cada documento:
a) se a profundidade de pesquisa atual (veja abaixo) for menor ou igual à profundidade de pesquisa configurada, o processo será repetido para todas as subcoleções do documento atual.
b) se os campos de pesquisa tiverem sido configurados, a extensão verificará se os campos fornecidos correspondem ao UID do usuário. Se uma correspondência for encontrada, o documento será excluído.
Média de páginas por visita
A extensão oferece um valor configurável de profundidade da pesquisa (o padrão é 3). A travessia só será executada se a profundidade de pesquisa atual for menor ou igual à profundidade de pesquisa configurada. A profundidade de pesquisa atual tem como base a profundidade da coleção atual ou da coleção mãe de documentos. Por exemplo:
Essa extensão NÃO excluirá automaticamente UIDs armazenados em matrizes ou mapas nem procurará dados codificados por ID do usuário armazenados em subcoleções aninhadas profundamente, além da profundidade especificada acima.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 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."]]