Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Con la extensión Borrar datos del usuario (delete-user-data), puedes borrar los datos de un usuario cuando se borre de tu proyecto de Firebase. Puedes configurar esta extensión para borrar datos del usuario de Cloud Firestore, Realtime Database o Cloud Storage. Cada activador de la extensión para borrar datos está vinculado al UserId del usuario.
Esta extensión es útil para respetar la privacidad del usuario y satisfacer los requisitos de cumplimiento. Sin embargo, su uso no garantiza que cumplas con las reglamentaciones gubernamentales o del sector.
Esta extensión solo borra los datos de Cloud Firestore, Realtime Database y Cloud Storage. Si almacenas datos del usuario en otros lugares, también debes borrarlos cuando borres a los usuarios.
Instala la extensión
Para instalar la extensión, sigue los pasos que se indican en la página Cómo instalar una Extensión de Firebase. En resumen, realiza una de las siguientes acciones:
Durante la instalación de la extensión, se te solicitará que especifiques una serie de parámetros de configuración:
Ubicación de Cloud Functions:
Selecciona la ubicación en la que deseas implementar las funciones creadas para esta extensión. Por lo general, es recomendable usar una ubicación cercana a tu base de datos. Si necesitas ayuda para elegir una, consulta la guía de selección de ubicaciones.
Rutas de acceso de Cloud Firestore:
¿Qué rutas de acceso de tu instancia de Cloud Firestore contienen datos de los usuarios? Deja el campo en blanco si no usas Cloud Firestore. Ingresa las rutas completas separadas por comas. Puedes representar el ID del usuario borrado con {UID}. Por ejemplo, si tienes las colecciones users y admins, y cada colección tiene documentos con el ID del usuario como ID de los documentos, puedes ingresar users/{UID},admins/{UID}.
Modo de eliminación de Cloud Firestore
(Solo corresponde si usas el parámetro Cloud Firestore paths). Determina cómo se borran los documentos de Cloud Firestore. Si quieres que también se borren los documentos de las subcolecciones, configura este parámetro como recursive.
Instancia de Realtime Database:
¿Desde qué instancia de Realtime Database quieres borrar los datos del usuario?
Ubicación de Realtime Database:
(Solo corresponde si proporcionaste el parámetro Realtime Database instance). ¿Desde qué ubicación de Realtime Database quieres borrar los datos del usuario?
Rutas de acceso de Realtime Database:
¿Qué rutas de acceso de la instancia de Realtime Database contienen datos de los usuarios? Deja el campo en blanco si no usas Realtime Database. Ingresa las rutas completas separadas por comas. Puedes representar el ID del usuario borrado con {UID}. Por ejemplo: users/{UID},admins/{UID}.
Rutas de acceso de Cloud Storage:
¿Dónde se almacenan los datos del usuario en Google Cloud Storage? Deja el campo en blanco si no usas Cloud Storage. Ingresa las rutas de acceso completas y separadas por comas a los archivos o directorios de los buckets de Storage. Usa {UID} para representar el ID del usuario que se borró y {DEFAULT} para representar el bucket de Storage predeterminado.
Estos son algunos ejemplos:
Para borrar todos los archivos del bucket predeterminado con el esquema de denominación de archivos {UID}-pic.png, ingresa {DEFAULT}/{UID}-pic.png.
Para borrar también todos los archivos de otro bucket llamado my-app-logs con el esquema de denominación de archivos {UID}-logs.txt, ingresa {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
Para también borrar un directorio etiquetado por ID del usuario y todos sus archivos (como media/{UID}), ingresa {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.
Cómo descubrir datos para la eliminación
Hay algunos mecanismos que esta extensión utiliza para descubrir datos y borrarlos. Estos mecanismos deben configurarse de manera explícita para que la extensión borre los datos. La extensión solo borrará los datos que estén configurados para borrarse de manera explícita, según los mecanismos proporcionados.
Ten en cuenta las siguientes diferencias de comportamiento entre cada servicio:
Cloud Firestore: el comportamiento predeterminado es borrar un documento de forma superficial (no se borrarán las subcolecciones). Para borrar de forma recursiva todas las subcolecciones de un documento, establece la opción "Modo de eliminación de Cloud Firestore" en "Recursiva".
Realtime Database: se borrarán todos los datos del nodo especificado.
Almacenamiento: si se especifica una ruta de acceso del directorio, se borrarán todos los archivos y subdirectorios.
Por ruta
Cuando configuras las rutas de Cloud Firestore, las de Realtime Database y las de Cloud Storage, puedes definir una variable de UID en las rutas de acceso que se reemplazará por el UID del usuario autenticado. Cuando se borra un usuario, la extensión borra todos los datos que contiene ese UID en las rutas de acceso proporcionadas, por ejemplo:
Las rutas de acceso de Cloud Firestore: users/{UID},admins/{UID}
Las rutas de acceso de Realtime Database: likes/{UID}
Las rutas de acceso de Cloud Storage: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
Descubrimiento automático (Cloud Firestore)
Si deseas habilitar la extensión a fin de que descubra automáticamente los documentos de Firestore para borrarlos, establece el parámetro de configuración "Habilitar descubrimiento automático" en "Sí".
El descubrimiento automático recorre la base de datos de forma automática para encontrar colecciones y documentos que se deban borrar de acuerdo con la configuración. La extensión identifica esas colecciones y documentos con la siguiente metodología:
En primer lugar, la extensión busca todas las colecciones raíz en la base de datos. Si el ID de una colección coincide con el del UID del usuario, se borra toda la colección (la eliminación es recursiva o superficial, según la configuración de la extensión para "Modo de eliminación de Cloud Firestore").
En segundo lugar, si el ID de la colección no coincide, la extensión intentará identificar y borrar un documento si el ID del documento coincide con el UID del usuario.
Por último, para cada documento:
a. Si el promedio de páginas vistas por búsqueda actual (ver a continuación) es menor o igual que el promedio de páginas vistas por búsqueda configurado, el proceso se repetirá para todas las subcolecciones actuales del documento.
b. Si se configuraron los campos de búsqueda, la extensión verificará si los campos proporcionados coinciden con el UID del usuario. Si se encuentra una coincidencia, se borrará el documento.
Promedio de vistas de página por búsqueda
La extensión ofrece un valor de promedio de páginas vistas por búsqueda configurable (la configuración predeterminada es 3). El recorrido solo se ejecutará si el promedio de páginas vistas por búsqueda es inferior o igual al promedio de páginas vistas por búsqueda configurado. El promedio de páginas vistas por búsqueda actual se basa en la profundidad de la colección actual o la colección principal de documentos, por ejemplo:
Esta extensión NO borrará de forma automática los UID almacenados en arrays o mapas, y no buscará datos protegidos por el ID del usuario almacenados en subcolecciones anidadas de forma profunda que superen el promedio especificado anteriormente.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]