Usar Cloud Firestore en modo Datastore
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Firestore es una base de datos de documentos NoSQL creada a fin de proporcionar ajuste de escala automático, alto rendimiento y facilidad para el desarrollo de aplicaciones. Es la versión más reciente de Datastore y presenta varias mejoras con respecto a Datastore.
Debido a que Firestore en modo Datastore está optimizado para los casos de uso del servidor y para App Engine, recomendamos usar Firestore en modo Datastore para las bases de datos que las apps de App Engine usarán en gran medida. Firestore en modo nativo es más útil para casos de uso de notificaciones móviles y en tiempo real. Para obtener más información sobre los modos de Firestore, consulta Elige entre el modo nativo y el modo Datastore.
Usa el modo Datastore con App Engine
Para usar el modo Datastore con App Engine, haz lo siguiente:
Si aún no lo hiciste, crea una base de datos y elige Firestore en modo Datastore.
Puedes usar las bases de datos de Datastore existentes con las apps de App Engine. Estas bases de datos existentes se actualizarán de forma automática a Firestore en el modo Datastore.
En tu app, declara Datastore como una dependencia. Para ello, agrega la biblioteca al archivo de dependencias de la app.
Usa la biblioteca cliente de Google Cloud para leer y escribir entidades y consultar datos.
Configura índices
El modo Datastore usa índices para cada consulta que realiza la aplicación. Los índices se actualizan siempre que se modifica una entidad, de modo que se puedan mostrar resultados con rapidez cuando la app realiza una consulta.
El modo Datastore crea de forma automática índices de una sola propiedad para usarlos con tipos de consultas simples. Para consultas complejas que incluyen varias propiedades, deberás configurar índices compuestos en el archivo index.yaml
de la app.
El servidor de desarrollo de App Engine actualizará el archivo index.yaml
con los índices compuestos que se necesitan para ejecutar las pruebas. De forma similar, el emulador del modo Datastore puede generar índices cuando ejecutas pruebas.
También puedes agregar los índices al archivo index.yaml
de la app de forma manual si no ejecutas pruebas locales o si tus pruebas no incluyen consultas complejas.
Configura permisos de bases de datos
De forma predeterminada, tu app tiene todos los permisos necesarios para leer y escribir en las bases de datos de Firestore y el modo Datastore en tu proyecto deGoogle Cloud .
Para administrar estos permisos, cada app de App Engine usa una cuenta de servicio predeterminada que otorga acceso completo de lectura y escritura al modo Datastore y a las bases de datos de Firestore en el mismo proyecto que la app. Puedes cambiar los permisos de la cuenta de servicio predeterminada, pero es posible que la app pierda acceso, a menos que asignes una función de IAM con los permisos necesarios.
Si deseas obtener información sobre cómo permitir que otros usuarios, aplicaciones o proyectos accedan a una base de datos, consulta Accede a tu base de datos.
Usa el emulador del modo Datastore para realizar pruebas locales
Google Cloud CLI para Java incluye un servidor de desarrollo local que permite probar la aplicación en tu computadora. El servidor de desarrollo local simula el entorno de ejecución de Java de App Engine y todos sus servicios, incluido el modo Datastore.
El servidor de desarrollo genera la configuración de los índices del modo Datastore que necesita la aplicación, determinada a partir de las consultas que realiza mientras la pruebas.
Precios, cuotas y límites
El modo Datastore ofrece una cuota gratuita con límites diarios. Las cuentas pagadas ofrecen almacenamiento y operaciones de lectura y escritura ilimitados. Para obtener más información, consulta la página Cuotas de Datastore.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-04 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[[["\u003cp\u003eFirestore is a NoSQL document database designed for automatic scaling, high performance, and ease of development, with improvements over its predecessor, Datastore.\u003c/p\u003e\n"],["\u003cp\u003eFirestore offers two modes: Datastore mode, which is optimized for server use cases and App Engine, and Native mode, which is designed for mobile and real-time notifications.\u003c/p\u003e\n"],["\u003cp\u003eDatastore mode utilizes indexes for each query, automatically generating single-property indexes and requiring composite indexes for complex queries, which can be managed via the \u003ccode\u003eindex.yaml\u003c/code\u003e file.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine apps using Datastore mode have default permissions to read and write to the database, managed by a service account, but these permissions can be modified, though it could cause access issues if the proper role isn't assigned.\u003c/p\u003e\n"],["\u003cp\u003eDatastore mode offers a free quota with daily limits, with paid accounts providing unlimited storage and read/write operations.\u003c/p\u003e\n"]]],[],null,["# Using Cloud Firestore in Datastore Mode\n\nFirestore is a NoSQL document database built for automatic scaling,\nhigh performance, and ease of application development. It is the newest version\nof Datastore and introduces several improvements over\nDatastore.\n\nBecause Firestore in [Datastore mode](/datastore/docs)\nis optimized for server use cases and for\nApp Engine, we recommend using Firestore in\nDatastore mode for databases that will be used primarily by\nApp Engine apps. Firestore in Native mode is most useful for\nmobile and real-time notification use cases. For more information about\nFirestore modes, see [Choosing between Native Mode and\nDatastore mode](/datastore/docs/firestore-or-datastore).\n\nUsing Datastore mode with App Engine\n------------------------------------\n\nTo use Datastore mode with App Engine:\n\n1. If you haven't already done so,\n [create a database](/datastore/docs/store-query-data#create_a_database)\n and choose Firestore in Datastore mode.\n\n You can use existing Datastore databases with App Engine\n apps. These existing databases [will be automatically upgraded to\n Firestore in Datastore\n mode](/datastore/docs/upgrade-to-firestore).\n\n\n 1. In your app, declare Datastore as a dependency\n\n by [adding the library to your app's dependencies\n file](/datastore/docs/reference/libraries#client-libraries-install-java).\n\n \u003cbr /\u003e\n\n 2. Use the Google Cloud Client Library to\n [read and write entities](/datastore/docs/concepts/entities)\n and to [query data](/datastore/docs/concepts/queries).\n\n Configuring indexes\n -------------------\n\n Datastore mode uses\n [indexes](/datastore/docs/concepts/indexes)\n for every query your application makes. The indexes are updated whenever an\n entity changes, so the results can be returned quickly when the app makes a\n query.\n\n Datastore mode automatically creates single-property indexes for use with\n simple types of queries. For complex queries that include multiple properties,\n you'll need to configure composite indexes in your app's `index.yaml` file.\n\n The App Engine development server will update your `index.yaml` file\n with the composite indexes needed to run your tests. Similarly, the\n [Datastore mode emulator can generate indexes](/datastore/docs/tools)\n when you run tests.\n\n You can also add the indexes to your app's\n `index.yaml` file [manually](/appengine/docs/legacy/standard/java/configuring-datastore-indexes-with-index-yaml) if you do not run local\n tests or your tests do not include complex queries.\n\n Setting database permissions\n ----------------------------\n\n By default, your app has all the permissions required to read and write to\n Datastore mode and Firestore databases in your\n Google Cloud project.\n\n To manage these permissions, each App Engine app uses a [default service\n account](/appengine/docs/legacy/standard/java/service-account)\n that gives full read and write access to Datastore mode\n and Firestore databases in the same project as the app. You can\n [change the permissions of the default service\n account](/appengine/docs/legacy/standard/java/access-control#modify-service-account),\n but your app may lose access unless you assign an IAM role with the\n [required permissions](/datastore/docs/access/iam#required_permissions).\n\n For information about allowing other users, apps, or projects to access a database, see\n [Accessing your database](/datastore/docs/activate).\n\n Using the Datastore mode emulator for local testing\n ---------------------------------------------------\n\n The Google Cloud CLI for Java includes a [local development\n server](/appengine/docs/legacy/standard/java/tools/using-local-server) for testing your application on your computer. The local development server emulates the App Engine Java runtime environment and all of its services, including Datastore mode.\n\n \u003cbr /\u003e\n\n The development server generates configuration for Datastore mode\n indexes needed by your application, determined from the queries it performs\n while you are testing it.\n\n Pricing, quotas, and limits\n ---------------------------\n\n Datastore mode offers a free quota with daily limits. Paid\n accounts offer unlimited storage, read, and write operations. More information\n is available on the [Datastore Quotas](/appengine/docs/legacy/standard/java/quotas#Datastore) page."]]