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.
(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
En la consola de Google Cloud Platform, vaya a la página Bases de datos .
- Haga clic en Crear base de datos .
- Seleccione un modo de base de datos. Haga clic en Continuar
- 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:
- DATABASE_ID : un ID de base de datos válido .
- LOCATION : el nombre de una región o multirregión de Cloud Firestore .
- DATABASE_TYPE : ya sea
firestore-native
para el modo Nativo o datastore-mode para el modo Datastore.
--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:
- DATABASE_ID : un ID de base de datos válido .
- LOCATION : el nombre de una región o multirregión de Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
oDISABLED
. La base de datos creada siempre está en modo Firestore Native.
--delete-protection
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:
- DATABASE_ID : un ID de base de datos válido .
- LOCATION : el nombre de una región o multirregión de Cloud Firestore .
- DATABASE_TYPE :
FIRESTORE_NATIVE
para el modo nativo oDATASTORE_MODE
para el modo Datastore. - DELETE_PROTECTION_ENABLEMENT :
DELETE_PROTECTION_ENABLED
oDELETE_PROTECTION_DISABLED
.
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 .
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
En la consola de Google Cloud Platform, vaya a la página Bases de datos .
- 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.
¿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
- Puede tener un máximo de 100 bases de datos por proyecto. Puede ponerse en contacto con el soporte para solicitar un aumento a este límite.
- No puede eliminar su base de datos si contiene datos de búsqueda GAE y/o entidades de blobs . Utilice la API de eliminación de índice para eliminar los datos de búsqueda de GAE y la API de eliminación de Blobstore para eliminar los datos de Blobstore.
- No puede reutilizar una ID de base de datos hasta 5 minutos después de que se produzca la eliminación.
- Cloud Function v1 no admite bases de datos con nombre de Firestore. Utilice los activadores de Cloud Firestore (2.ª generación) para configurar eventos para bases de datos con nombre.
- Los activadores de funciones de Firestore v1 y los activadores de eventos de Firestore pueden dejar de funcionar después de que se elimina la base de datos, incluso si se crea una nueva base de datos con el mismo nombre.