Ir a la consola

Usa la API de REST de Cloud Firestore

Si bien la forma más fácil de usar Cloud Firestore es mediante una de las bibliotecas cliente nativas, en algunas situaciones es útil llamar directamente a la API de REST.

La API de REST puede ser útil en los siguientes casos prácticos:

  • Para acceder a Cloud Firestore desde un entorno con recursos restringidos, como un dispositivo de Internet de las cosas (IoT), en el que no es posible ejecutar una biblioteca cliente completa.
  • Para automatizar la administración de la base de datos o recuperar metadatos detallados de la base de datos.

Si estás usando un lenguaje compatible con gRPC, te recomendamos usar la API de RPC en lugar de la de REST.

Autenticación y autorización

Para la autenticación, la API de REST de Cloud Firestore acepta un token de ID de Firebase Authentication o uno de Google Identity OAuth 2.0. El token que proporcionas afecta la autorización de tu solicitud:

Cómo trabajar con tokens de ID de Firebase

Puedes obtener un token de ID de Firebase de dos maneras:

Si se recupera el token de ID de Firebase de un usuario, puedes realizar solicitudes en nombre del usuario.

Para solicitudes autenticadas con un token de ID de Firebase y para solicitudes no autenticadas, Cloud Firestore utiliza tus reglas de seguridad de Cloud Firestore para determinar si se autoriza una solicitud.

Trabajar con tokens de Google Identity OAuth 2.0

Para generar un token de acceso, usa una cuenta de servicio con una biblioteca de cliente de la API de Google, o bien sigue los pasos que se indican en Cómo usar OAuth 2.0 para aplicaciones de servidor a servidor. Asimismo, puedes generar un token con la herramienta de línea de comandos gcloud y el comando gcloud auth print-access-token.

Este token debe tener el siguiente alcance para enviar solicitudes a la API de REST de Cloud Firestore:

  • https://www.googleapis.com/auth/datastore

Si autenticas tus solicitudes con una cuenta de servicio y un token de Google Identity OAuth 2.0, Cloud Firestore supone que tus solicitudes actúan en nombre de tu aplicación y no de un usuario individual. Cloud Firestore permite que estas solicitudes ignoren tus reglas de seguridad. En cambio, Cloud Firestore utiliza la administración de identidades y accesos (IAM) de Cloud para determinar si se autoriza una solicitud.

Puedes controlar los permisos de acceso de las cuentas de servicio asignando funciones de IAM de Cloud Firestore.

Cómo autenticar con un token de acceso

Una vez que hayas obtenido un token de ID de Firebase o un token de Google Identity OAuth 2.0, pásalo a los extremos de Cloud Firestore como un encabezado de Authorization configurado como Bearer {YOUR_TOKEN}.

Cómo hacer llamadas de REST

Todos los extremos de la API de REST existen en la URL base https://firestore.googleapis.com/v1beta1/.

Para crear una ruta a un documento con el ID LA en la colección cities bajo el proyecto YOUR_PROJECT_ID, debes usar la siguiente estructura.

/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

Para interactuar con esta ruta de acceso, combínala con la URL base de la API.

https://firestore.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

La mejor manera de comenzar a experimentar con la API de REST es usar el Explorador de API, que genera automáticamente tokens de Google Identity OAuth 2.0 y te permite examinar la API.

Métodos

A continuación, se describen brevemente los dos grupos de métodos más importantes. Para ver una lista completa, consulta la referencia de la API de REST o usa el Explorador de API.

v1beta1.projects.databases.documents

Ejecuta operaciones CRUD en documentos, similares a las descritas en las guías para obtener datos o agregar datos .

v1beta1.projects.databases.indexes

Realiza acciones en índices como crear nuevos índices, inhabilitar uno existente o enumerar todos los actuales. Es útil para automatizar migraciones de estructuras de datos o para sincronizar índices entre proyectos.

También permite la recuperación de metadatos de documentos, como la lista de todos los campos y las subcolecciones de un documento determinado.