Solo es relevante para la edición Enterprise de Cloud Firestore. |
En esta página, se describe cómo crear, actualizar y borrar bases de datos de Cloud Firestore con compatibilidad con MongoDB. Puedes crear varias bases de datos Cloud Firestore por proyecto. Puedes usar varias bases de datos para configurar entornos de producción y de pruebas, aislar datos de clientes y regionalizarlos.
Uso del nivel gratuito
Cloud Firestore ofrece un nivel gratuito que te permite comenzar sin costo.
El nivel gratuito se aplica a solo una base de datos de Cloud Firestore por proyecto. La primera base de datos que se cree en un proyecto sin una base de datos de nivel gratuito obtendrá el nivel gratuito. Si se borra la base de datos con el nivel gratuito aplicado, la próxima base de datos que se cree recibirá el nivel gratuito.
Antes de comenzar
Antes de crear una base de datos, debes completar los siguientes pasos:
-
Si aún no lo hiciste, crea un proyecto de Firebase. Para ello, en Firebase console, haz clic en Agregar proyecto y, luego, sigue las instrucciones en pantalla para crear un proyecto de Firebase o agregar servicios de Firebase a un proyecto de Google Cloud existente.
- Asigna los roles de administración de identidades y accesos adecuados, como se describe en la siguiente sección.
Roles obligatorios
Para crear y administrar bases de datos, necesitas el rol de Identity and Access Management
Owner
o Datastore Owner
. Estos roles otorgan los permisos necesarios.
Permisos necesarios
Para administrar bases de datos, necesitas los siguientes permisos:
- Crear una base de datos:
datastore.databases.create
- Leer la configuración de la base de datos:
datastore.databases.getMetadata
- Configurar una base de datos:
datastore.databases.update
- Borrae una base de datos:
datastore.databases.delete
- Clonar una base de datos:
datastore.databases.clone
Crea una base de datos
Para crear una base de datos de Cloud Firestore con compatibilidad con MongoDB, usa uno de los siguientes métodos:
Consola de Firebase
-
En la consola Firebase, ve a la página Base de datos de Firestore:
- Haz clic en Crear base de datos.
- Selecciona Enterprise Edition. Haz clic en Siguiente.
- Ingresa un ID de la base de datos.
- Selecciona una ubicación para tu base de datos.
- Configura tu base de datos donde seleccionas un modo.
- Haz clic en Crear.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
gcloud CLI
Usa el comando gcloud firestore databases create
y configura --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Reemplaza lo siguiente:
- DATABASE_ID: Es un ID de base de datos válido.
- LOCATION: Es el nombre de una región o multirregión de Cloud Firestore compatible con MongoDB.
Para habilitar la protección contra la eliminación, agrega la marca --delete-protection
.
No puedes borrar una base de datos que tenga habilitada la protección contra la eliminación hasta que inhabilites este parámetro de configuración. Esta configuración está inhabilitada de forma predeterminada.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Para agregar etiquetas
a la base de datos, usa la marca
--tags
. Por ejemplo:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
Usa el recurso google_firestore_database
y establece database_edition
en ENTERPRISE
.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Reemplaza lo siguiente:
- DATABASE_ID: Es un ID de base de datos válido.
- LOCATION: Es el nombre de una región o multirregión de Cloud Firestore compatible con MongoDB.
- DELETE_PROTECTION_ENABLEMENT por
DELETE_PROTECTION_ENABLED
oDELETE_PROTECTION_DISABLED
.
Para habilitar la protección contra la eliminación, establece delete_protection_state
en DELETE_PROTECTION_ENABLED
.
No puedes borrar una base de datos que tenga habilitada la protección contra la eliminación hasta que inhabilites este parámetro de configuración. Esta configuración está inhabilitada de forma predeterminada.
ID de la base de datos
Los IDs válidos de bases de datos incluyen los IDs que cumplen con lo siguiente:
- Incluye solo letras, números y guiones (
-
). - Las letras deben estar en minúsculas.
- El primer carácter debe ser una letra.
- El último carácter debe ser una letra o un número.
- Con 4 caracteres como mínimo
- Puede tener un máximo de 63 caracteres.
- No debe ser un UUID ni parecerse a un UUID. Por ejemplo, no uses un ID como
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Si borras una base de datos, no podrás volver a usar de inmediato su ID hasta después de 5 minutos.
Protección contra la eliminación
Usa la protección contra la eliminación para evitar que se borre accidentalmente una base de datos. La protección contra borrado funciona de la siguiente manera:
- No puedes borrar una base de datos que tenga habilitada la protección contra la eliminación hasta que la inhabilites.
- La protección contra la eliminación está inhabilitada de forma predeterminada.
- Puedes habilitar la protección contra la eliminación cuando creas la base de datos o puedes actualizar la configuración de una base de datos para habilitar la protección contra la eliminación.
Enumerar bases de datos
Usa uno de los siguientes métodos para obtener una lista de tus bases de datos:
Consola de Firebase
-
En la consola Firebase, ve a la página Base de datos de Firestore:
- Haz clic en Cloud Firestore para ver todas las bases de datos del proyecto.
gcloud CLI
Usa el comando
gcloud firestore databases list
para enumerar todas las bases de datos de tu proyecto.
gcloud firestore databases list
Visualiza los detalles de la base de datos
Para ver los detalles de una sola base de datos, usa uno de los siguientes métodos:
Consola de Firebase
-
En la consola Firebase, ve a la página Base de datos de Firestore:
- Selecciona una base de datos de la lista.
gcloud CLI
Usa el comando gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Reemplaza DATABASE_ID por un ID de la base de datos.
Actualiza la configuración de la base de datos
Para actualizar la configuración de una base de datos, usa el comando gcloud firestore databases update
.
Usa este comando para cambiar, habilitar o inhabilitar la protección contra eliminaciones.
Actualiza la configuración de protección contra eliminaciones
Para habilitar la protección contra eliminaciones en una base de datos, usa el
comando
gcloud firestore databases update
con la marca --delete-protection
. Por ejemplo:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Reemplaza DATABASE_ID por un ID de la base de datos.
Para inhabilitar la protección contra eliminaciones en una base de datos, usa el comando
gcloud firestore databases update
con la marca --no-delete-protection
. Por ejemplo:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Reemplaza DATABASE_ID por un ID de la base de datos.
Borrar una base de datos
Para borrar una base de datos, usa la consola o la herramienta de línea de comandos. Si borras una base de datos, no se generarán cargos por las operaciones de eliminación.
Si la base de datos tiene habilitada la protección contra la eliminación, primero debes inhabilitar esa opción.
Consola de Firebase
-
En la consola Firebase, ve a la página Base de datos de Firestore:
- Selecciona la base de datos que deseas borrar.
- Haz clic en Ver más.
- Haz clic en Borrar para borrar la base de datos.
gcloud CLI
Usa el comando `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Reemplaza DATABASE_ID por el ID de la base de datos que deseas borrar.
Clona una base de datos
Puedes clonar una base de datos existente en una marca de tiempo seleccionada en una base de datos nueva:
La base de datos clonada es una base de datos nueva que se creará en la misma ubicación que la base de datos fuente.
Para crear un clon, Cloud Firestore usa datos de recuperación de un momento determinado (PITR) de la base de datos de origen. La base de datos clonada incluye todos los datos y los índices.
De forma predeterminada, la base de datos clonada se encriptará de la misma manera que la base de datos de origen, ya sea con la encriptación predeterminada de Google o con la encriptación de CMEK. Puedes especificar un tipo de encriptación diferente o usar una clave diferente para la encriptación con CMEK.
La marca de tiempo tiene una granularidad de un minuto y especifica un punto en el tiempo pasado, en el período definido por la ventana de PITR:
- Si la PITR está habilitada para tu base de datos, puedes seleccionar cualquier minuto de los últimos 7 días (o menos si la PITR se habilitó hace menos de 7 días).
- Si la PITR no está habilitada, puedes seleccionar cualquier minuto de la última hora.
- Puedes consultar la marca de tiempo más antigua que puedes elegir en la descripción de tu base de datos.
Console
En la consola de Google Cloud, ve a la página Bases de datos.
Haz clic en
Ver más en la fila de la tabla de la base de datos que quieras clonar. Haz clic en Clonar. Aparecerá el diálogo Crear un clon.En el diálogo Crear una clonación, proporciona parámetros para clonar la base de datos:
En el campo Asigna un ID a la clonación, se muestra un ID de base de datos para una nueva base de datos clonada. Este ID de base de datos no debe estar asociado a una base de datos existente.
En el campo Clonar desde, selecciona un momento determinado para usarlo en la clonación. La hora seleccionada corresponde a una marca de tiempo de la PITR, con un nivel de detalle por minuto.
Haz clic en Crear clon.
gcloud
Usa el comando
gcloud alpha firestore databases clone
para clonar una base de datos:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Reemplaza lo siguiente:
SOURCE_DATABASE: Es el nombre de la base de datos existente que quieres clonar. El nombre utiliza el formato
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID
.PITR_TIMESTAMP: Es una marca de tiempo de PITR en el formato RFC 3339, con un nivel de detalle por minuto. Por ejemplo,
2025-06-01T10:20:00.00Z
,2025-06-01T10:30:00.00-07:00
o .DESTINATION_DATABASE_ID: Es un ID de base de datos para una base de datos clonada nueva. Este ID de base de datos no debe estar asociado a una base de datos existente.
Ejemplo:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Cambia la configuración de encriptación de la base de datos clonada
De forma predeterminada, la base de datos clonada tendrá la misma configuración de encriptación
que la base de datos de origen. Para cambiar la configuración de encriptación, usa el argumento
--encryption-type
:
- (Predeterminado)
use-source-encryption
: Usa la misma configuración de encriptación que la base de datos de origen. - Usar la encriptación predeterminada de Google
customer-managed-encryption
: Usa la encriptación con CMEK. Especifica un ID de clave en el argumento--kms-key-name
.
En el siguiente ejemplo, se muestra cómo configurar el CMEK para la base de datos clonada:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Configura permisos de acceso por base de datos
Puedes usar las Condiciones de Identity and Access Management para configurar los permisos de acceso a nivel de cada base de datos. En los siguientes ejemplos, se usa Google Cloud CLI para asignar acceso condicional a una o más bases de datos. También puedes definir las condiciones de IAM en la consola de Google Cloud.
Ve las políticas de IAM existentes
gcloud projects get-iam-policy PROJECT_ID
PROJECT_ID
: Establece el ID del proyecto.
Otorga acceso a una base de datos
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Establezca lo siguiente:
PROJECT_ID
: El ID de tu proyectoEMAIL
: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo,alice@example.com
DATABASE_ID
: Un ID de base de datos.TITLE
: Un título opcional para la expresión.DESCRIPTION
: Una descripción opcional de la expresión.
Otorga acceso a todas las bases de datos, excepto a una
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Establezca lo siguiente:
PROJECT_ID
: El ID de tu proyectoEMAIL
: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo,alice@example.com
DATABASE_ID
: Un ID de base de datos.TITLE
: Un título opcional para la expresión.DESCRIPTION
: Una descripción opcional de la expresión.
Quita las políticas de un miembro y un rol determinados
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Establezca lo siguiente:
PROJECT_ID
: El ID de tu proyectoEMAIL
: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo,alice@example.com
Limitaciones
Puedes tener un máximo de 100 bases de datos por proyecto. Puedes comunicarte con el equipo de asistencia para solicitar un aumento de este límite.
¿Qué sigue?
- Ejecuta la Guía de inicio rápido: Crea una base de datos y conéctate a ella.
- Obtén más información sobre las diferencias de comportamiento.
- Obtén información sobre las métricas de Cloud Monitoring para Cloud Firestore con compatibilidad con MongoDB.