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 la Internet de las cosas (IoT), caso 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:

  • Usa los tokens de ID de Firebase para autenticar solicitudes de los usuarios de tu aplicación. Para estas solicitudes, Cloud Firestore utiliza reglas de seguridad de Cloud Firestore a fin de determinar si se autoriza una solicitud.

  • Usa un token de Google Identity OAuth 2.0 y una cuenta de servicio para autenticar solicitudes de tu aplicación, como solicitudes de administración de base de datos. Para estas solicitudes, Cloud Firestore utiliza Cloud Identity and Access Management (IAM) a fin de determinar si se autoriza una solicitud.

Cómo trabajar con tokens de ID de Firebase

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

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

En los casos de solicitudes autenticadas con un token de ID de Firebase y de 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 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. También puedes generar un token con la herramienta de línea de comandos de gcloud y el comando gcloud auth application-default 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 las 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 pasen por alto tus reglas de seguridad. En cambio, Cloud Firestore utiliza Cloud Identity and Access Management (IAM) 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 asociados a la URL base https://firestore.googleapis.com/v1/.

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/v1/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.

v1.projects.databases.documents

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

v1.projects.databases.collectionGroups.indexes

Realiza acciones relacionadas con índices, tales como crear índices, inhabilitar índices existentes o mostrar una lista de los índices actuales. Este método es útil para automatizar migraciones de estructuras de datos o para sincronizar índices entre proyectos.

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