Cuando creas una base de datos de Firestore nueva, puedes configurar la instancia de base de datos para que se ejecute en modo Datastore, que hace que la base de datos sea retrocompatible con Datastore. Esta página te ayudará a comprender la diferencia entre siguientes modos de bases de datos de Firestore: modo nativo y modo Datastore.
Firestore en modo nativo
Firestore es la próxima versión importante de Datastore y el desarrollo de la marca del producto. Firestore es una base de datos NoSQL de documentos que toma lo mejor de Datastore y Firebase Realtime Database, para brindar ajuste de escala automático y alto rendimiento, y facilitar el desarrollo de las aplicaciones.
Firestore presenta las siguientes funciones:
- Una capa de almacenamiento con coherencia sólida
- Un modelo de datos de colección y documento
- Actualizaciones en tiempo real
- Bibliotecas cliente para dispositivos móviles y la Web
Firestore es compatible con versiones anteriores de Datastore, pero el nuevo modelo de datos, las actualizaciones en tiempo real y las características de bibliotecas cliente para dispositivos móviles y web no lo son. Para acceder a todas las funciones de Firestore, debes usar Firestore en modo nativo.
Firestore en modo Datastore
Firestore en modo Datastore usa el comportamiento de sistema de Datastore, pero accede a la capa de almacenamiento de Firestore, lo que quita las siguientes limitaciones de Datastore:
- Todas las consultas de Datastore ahora a menos que solicites explícitamente coherencia eventual.
- Las consultas en las transacciones ya no deben ser consultas principales.
- Las transacciones ya no están limitadas a 25 grupos de entidades.
- Las operaciones de escritura en un grupo de entidad ya no están limitadas a 1 por segundo.
El modo Datastore inhabilita las características de Firestore que no son compatibles con Datastore:
- El proyecto aceptará las solicitudes a la API de Datastore y rechazará las solicitudes a la API de Firestore.
- El proyecto usará los índices de Datastore en lugar de los índices de Firestore.
- Puedes usar las bibliotecas cliente de Datastore con este proyecto, pero no las de Firestore.
- Las capacidades en tiempo real de Firestore no estarán disponibles.
- En la consola de Google Cloud, la base de datos usará el lector de Datastore.
Actualización automática al modo Datastore
Las bases de datos existentes de Datastore se actualizarán de manera automática a Firestore en modo Datastore. Los nuevos proyectos que requieren una base de datos de Datastore deberían usar Firestore en modo Datastore.
Precios y ubicaciones
Las bases de datos en modo nativo y modo Datastore utilizan la misma estructura de precios y están disponibles en las mismas ubicaciones. Los precios y las ubicaciones se describen en detalle en las siguientes páginas:
Firestore en modo nativo
Firestore en modo Datastore
Elige un modo de base de datos
Cuando creas una base de datos de Firestore nueva, debes seleccionar un modo de base de datos. Puedes tener bases de datos en modo Datastore y en modo nativo en el mismo proyecto. pero cada base de datos será de un solo tipo. Cuando elijas un modo de base de datos, te recomendamos lo siguiente:
Usa Firestore en modo Datastore para proyectos nuevos de servidor.
Firestore en modo Datastore te permite usar las arquitecturas de servidor establecidas de Datastore sin las limitaciones fundamentales de Datastore. El modo Datastore puede escalar automáticamente a millones de escrituras por segundo.
Usa Firestore en modo nativo para aplicaciones web y móviles nuevas.
Firestore ofrece bibliotecas cliente para dispositivos móviles y la Web con características en tiempo real y sin conexión. El modo nativo puede escalar de forma automática a millones de clientes simultáneos.
Comparación de funciones
En la siguiente tabla se compara el comportamiento del sistema de los modos de la base de datos:
Firestore en modo nativo |
Firestore en modo Datastore |
|
---|---|---|
Modelo de datos | Base de datos de documentos organizadas en documentos y colecciones | Entidades organizadas en categorías y grupos de entidad |
Capa de almacenamiento | Una capa de almacenamiento con coherencia sólida. | Una capa de almacenamiento con coherencia sólida. |
Consultas y transacciones |
|
|
Compatibilidad con la API de Datastore v1 | No, se rechazan las solicitudes | Sí |
Compatibilidad con la API de Firestore v1 | Sí | No, se rechazan las solicitudes. |
Actualizaciones en tiempo real |
Mientras detecta un documento o conjunto de documentos, a tus clientes se les notifica sobre cualquier cambio en los datos y se les envía el nuevo conjunto de datos. |
No compatible |
Persistencia de datos sin conexión | Las bibliotecas cliente para dispositivos móviles y web son compatibles con la persistencia de datos sin conexión. | No compatible |
Bibliotecas cliente | Bibliotecas cliente de Firestore:
|
Bibliotecas cliente de Datastore:
|
Seguridad |
|
IAM administra el acceso a la base de datos |
Rendimiento | Escala automáticamente a millones de clientes simultáneos. | Escala automáticamente a millones de escrituras por segundo. |
ANS | ANS de Firestore | ANS de Firestore |
Ubicaciones |
Ambos modos admiten las mismas ubicaciones. Para obtener una lista detallada de las ubicaciones, consulta las siguientes páginas: |
|
Precios |
Ambos modos usan la misma estructura de precios para las operaciones de entidades y documentos. Firestore en modo Datastore no cobra por operaciones pequeñas. Ambos modos usan la misma estructura de precios para los datos almacenados y el ancho de banda de red. Para obtener más información sobre los precios, consulta las siguientes páginas: |
|
Consola | Visualizador de Firestore de Firebase console y Google Cloud console | Visualizador de Datastore de la consola de Google Cloud |
Espacios de nombres | No compatible | Compatible con espacios de nombres |
Integración con la biblioteca cliente de App Engine | No compatible con los entornos de ejecución de Python 2.7 y PHP 5.5 del entorno estándar de App Engine Compatible con todos los demás entornos de ejecución del entorno estándar de App Engine Compatible con todos los entornos de ejecución del entorno flexible de App Engine |
Compatible con todos los entornos de ejecución |
Crear una base de datos nueva
Puedes crear una nueva base de datos de Firestore en modo nativo o modo Datastore. Esta opción no depende de los modos de ninguna base de datos existente en tu proyecto.
Consulta Crea y administra bases de datos para obtener más información.Cambia entre el modo nativo y el modo Datastore
Si tu base de datos está vacía, puedes cambiar entre el modo nativo y el modo Datastore.
Cambia la base de datos al modo nativo:
gcloud
Usa el comando gcloud firestore databases update para cambiar tu base de datos al modo nativo.
gcloud firestore databases update --type=firestore-native --database='DATABASE_ID'
Reemplaza DATABASE_ID por el ID de tu base de datos.
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto
- DATABASE_ID: Es el ID de la base de datos.
Cambia la base de datos al modo Datastore:
gcloud
Usa el comando gcloud firestore databases update para cambiar tu base de datos al modo Datastore.
gcloud firestore databases update --type=datastore-mode --database='DATABASE_ID'
Reemplaza DATABASE_ID por el ID de tu base de datos.
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto
- DATABASE_ID: Es el ID de la base de datos.