Crea y administra bases de datos

En esta página, se describe cómo crear, actualizar y borrar bases de datos de Firestore con compatibilidad con MongoDB. Puedes crear varias bases de datos de 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

Firestore ofrece un nivel gratuito que te permite comenzar sin costo.

El nivel gratuito se aplica solo a una base de datos de 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 siguiente base de datos que se cree recibirá el nivel gratuito.

Antes de comenzar

Antes de crear una base de datos, debes completar lo siguiente:

  1. Make sure that billing is enabled for your Google Cloud project.

  2. 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

Crea una base de datos

Para crear una base de datos de Firestore compatible con MongoDB, usa uno de los siguientes métodos:

Google Cloud console
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. Haz clic en Crear una base de datos de Firestore.
  3. Ingresa un ID de base de datos.
  4. Selecciona Enterprise Edition.
  5. Selecciona una ubicación para tu base de datos.
  6. (Opcional) Si necesitas personalizar la encriptación, haz clic en Mostrar opciones de encriptación y configúralas.
  7. Haz clic en Crear base de datos.
gcloud CLI

Usa el comando gcloud firestore databases create y establece --edition=enterprise.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

Reemplaza lo siguiente:

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
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:

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 la eliminación 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 habilitarla cuando creas la base de datos o puedes actualizar la configuración de una base de datos.

Enumerar bases de datos

Usa uno de los siguientes métodos para obtener una lista de tus bases de datos:

Console

En la Google Cloud consola, ve a la página Bases de datos.

Ir a Bases de datos

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:

Console
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. 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.

Google Cloud console
  1. En la Google Cloud consola, ve a la página Bases de datos.

    Ir a Bases de datos

  2. Haz clic en Ver más en la columna Acciones de la base de datos que quieres borrar. Haga clic en Borrar. Aparecerá un cuadro de diálogo.
  3. En el cuadro de diálogo ¿Quieres borrar la base de datos?, escribe el ID de la base de datos en el campo de texto para confirmar la eliminación. Haz clic en Borrar. La consola te informa sobre el éxito o el fracaso de la operación.

    Si la operación falla, consulta los detalles de la base de datos y verifica que la protección contra eliminaciones esté inhabilitada. Si quieres inhabilitar la protección contra eliminaciones, consulta Actualiza la configuración de la protección contra eliminaciones.

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.

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 Google Cloud consola.

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 proyecto
  • EMAIL: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo, [email protected]
  • 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 proyecto
  • EMAIL: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo, [email protected]
  • 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 proyecto
  • EMAIL: Una dirección de correo electrónico que representa una cuenta específica. Por ejemplo, [email protected]

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?