Administrar bases de datos

Esta página describe cómo crear, actualizar y eliminar bases de datos de Cloud Firestore. Puedes crear varias bases de datos de Cloud Firestore por proyecto. Puede utilizar varias bases de datos para configurar entornos de producción y prueba, para aislar datos de clientes y para regionalizar datos.

La base de datos (default)

Si su aplicación no requiere varias bases de datos, utilice la base de datos (default) .

Si no especifica una base de datos, las bibliotecas cliente de Cloud Firestore y la CLI de Google Cloud se conectan a la base de datos (default) de forma predeterminada.

Puede utilizar la cuota gratuita solo con la base de datos (default) .

Roles requeridos

Para crear y administrar bases de datos, necesita el rol de Administración de acceso e identidad Owner o Datastore Owner . Estos roles otorgan los permisos necesarios.

Permisos requeridos

Para administrar bases de datos, necesita 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
  • Eliminar una base de datos: datastore.databases.delete

Crear una base de datos

Para crear una base de datos, utilice uno de los siguientes métodos:

Consola
  1. En la consola de Google Cloud Platform, vaya a la página Bases de datos .

    Ir a Bases de Datos

  2. Haga clic en Crear base de datos .
  3. Seleccione un modo de base de datos. Haga clic en Continuar
  4. Configura tu base de datos. Ingrese una ID de base de datos. Selecciona una ubicación. Haga clic en Crear base de datos .
nube de gcloud

Usa el comando gcloud alpha firestore databases create .

gcloud alpha firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

Reemplace lo siguiente:

--delete-protection es un indicador opcional para habilitar la protección contra eliminación. No puede eliminar una base de datos con la protección contra eliminación habilitada hasta que deshabilite esta configuración. Esta configuración está deshabilitada de forma predeterminada.

CLI de base de fuego
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

Reemplace lo siguiente:

--delete-protection es un argumento opcional para habilitar la protección contra eliminación. No puede eliminar una base de datos con la protección contra eliminación habilitada hasta que deshabilite esta configuración. Esta configuración está deshabilitada de forma predeterminada.

Terraformar
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

Reemplace lo siguiente:

delete_protection_state es un argumento opcional para habilitar la protección contra eliminación. No puede eliminar una base de datos con la protección contra eliminación habilitada hasta que deshabilite esta configuración. Esta configuración está deshabilitada de forma predeterminada.

ID de base de datos

Los ID de base de datos válidos incluyen (default) e ID 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.
  • Mínimo de 4 caracteres.
  • Máximo de 63 caracteres.
  • No debe ser un UUID ni parecerse a un UUID. Por ejemplo, no utilice un ID como f47ac10b-58cc-0372-8567-0e02b2c3d479 .

Si elimina una base de datos, no podrá reutilizar inmediatamente el ID de la base de datos hasta después de 5 minutos.

Eliminar protección

Utilice la protección contra eliminación para evitar la eliminación accidental de una base de datos. No puede eliminar una base de datos con la protección contra eliminación habilitada hasta que deshabilite la protección contra eliminación. La protección contra eliminación está desactivada de forma predeterminada. Puede habilitar la protección contra eliminación cuando crea la base de datos o puede actualizar la configuración de una base de datos para habilitar la protección contra eliminación.

Configure las reglas de seguridad de Cloud Firestore para sus bases de datos

Utilice Firebase CLI para implementar reglas de seguridad de Cloud Firestore en cada una de sus bases de datos. Consulte la guía para administrar e implementar las reglas de seguridad de Cloud Firestore .

Acceda a una base de datos con nombre con una biblioteca cliente

Una base de datos con nombre incluye cualquier base de datos sin nombre (default) . De forma predeterminada, los SDK de Firebase y las bibliotecas cliente API de Google se conectan a la base de datos (default) de Cloud Firestore en un proyecto. Para crear un cliente conectado a una base de datos con nombre, establezca el ID de la base de datos cuando cree una instancia de un cliente.

Listar bases de datos

Utilice uno de los siguientes métodos para enumerar sus bases de datos:

Consola

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

Ir a Bases de Datos

nube de gcloud

Usa el comando gcloud firestore databases list para enumerar todas las bases de datos de tu proyecto.

gcloud firestore databases list

Ver detalles de la base de datos

Para ver detalles sobre una sola base de datos, usa el comando gcloud firestore databases describe :

nube de gcloud
gcloud firestore databases describe --database=DATABASE_ID

Reemplace DATABASE_ID con un ID de base de datos.

Actualizar la configuración de la base de datos

Para actualizar las configuraciones de una base de datos, use el comando gcloud alpha firestore databases update . Utilice este comando para cambiar y habilitar o deshabilitar la protección contra eliminación.

Actualizar la configuración de protección contra eliminación

Para habilitar la protección contra eliminación en una base de datos, usa el comando gcloud alpha firestore databases update con la marca --delete-protection . Por ejemplo:

nube de gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

Reemplace DATABASE_ID con un ID de base de datos.

Para deshabilitar la protección contra eliminación en una base de datos, use el comando gcloud alpha firestore databases update con la marca --no-delete-protection . Por ejemplo:

nube de gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

Reemplace DATABASE_ID con un ID de base de datos.

Eliminar una base de datos

Para eliminar una base de datos, utilice la consola o la herramienta de línea de comandos.

Si la base de datos tiene habilitada la configuración de protección contra eliminación, primero debe desactivar la protección contra eliminación .

Si la base de datos contiene datos de búsqueda de App Engine o entidades de blobs , primero debes eliminar esos datos.

Eliminar una base de datos no elimina automáticamente ningún activador de Eventarc para esa base de datos. El desencadenador deja de entregar eventos pero continúa existiendo hasta que lo elimina .

Consola
  1. En la consola de Google Cloud Platform, vaya a la página Bases de datos .

    Ir a Bases de Datos

  2. Haga clic en Ver más en la fila de la tabla de la base de datos que desea eliminar. Haga clic en Eliminar . Aparece un cuadro de diálogo.
  3. ¿En la base de datos Eliminar? cuadro de diálogo, confirme la eliminación escribiendo el ID de la base de datos en el campo de texto. Haga clic en Eliminar . La consola le informa del éxito o fracaso de la operación.

    Si la operación falla, vea los detalles de la base de datos y verifique que la protección contra eliminación esté desactivada. Para desactivar la protección contra eliminación, consulte Actualizar la configuración de protección contra eliminación .

nube de gcloud

Utilice el comando "eliminar bases de datos de gcloud alpha firestore" .

gcloud alpha firestore databases delete --database=DATABASE_ID

Reemplace DATABASE_ID con el ID de la base de datos que desea eliminar.

Configurar permisos de acceso por base de datos

Puede utilizar las condiciones de administración de acceso e identidad para configurar permisos de acceso a nivel de base de datos. Los siguientes ejemplos utilizan la CLI de Google Cloud para asignar acceso condicional a una o más bases de datos. También puedes definir condiciones de IAM en GCP Console .

Ver políticas de IAM existentes

gcloud projects get-iam-policy PROJECT_ID

Establezca PROJECT_ID en su ID de proyecto.

Conceder 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 : ID de tu proyecto
  • EMAIL : una dirección de correo electrónico que representa una cuenta de Google 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.

Conceder 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 : ID de tu proyecto
  • EMAIL : una dirección de correo electrónico que representa una cuenta de Google 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.

Eliminar políticas para un miembro y rol determinados

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Establezca lo siguiente:

  • PROJECT_ID : ID de tu proyecto
  • EMAIL : una dirección de correo electrónico que representa una cuenta de Google específica. Por ejemplo, alice@example.com .

Monitoreo de la nube

Las métricas de Cloud Firestore se informan en dos recursos monitoreados.

Puede inspeccionar métricas agregadas a nivel de base de datos consultando firestore.googleapis.com/Database . Las métricas informadas en firestore_instance se agregan a nivel de proyecto.

Limitaciones

Que sigue