index.js— función exportadagetDataque obtiene documentos de Firestore, genera signed URLs desde Cloud Storage y devuelve JSON.index.test.js— servidor Express local para pruebas (/data)..env— variables de entorno.key.json— credenciales de servicio GCP.
PROJECT_ID— ID del proyecto GCP.FIRESTORE_DATABASE_ID— ID de la instancia Firestore.BUCKET— nombre del bucket (ver nota).GOOGLE_APPLICATION_CREDENTIALS— ruta akey.json.
- Cada documento tiene un array
imagescon nombres de archivo. - Las rutas se forman como
imagenes/<nombre>y se generan signed URLs con 15 minutos de expiración.
- Instalar dependencias:
npm install
- Ejecutar servidor de pruebas:
npm run index.test.js
- Llamar al endpoint:
curl -X GET http://localhost:8080/data -H "Content-Type: application/json" -d '{"collection":"NOMBRE_DE_COLECCION"}'
- Añadir
require('dotenv').config()enindex.jssi vas a ejecutar localmente o exportar variables. - Verificar que
key.jsonexiste yGOOGLE_APPLICATION_CREDENTIALSapunta correctamente. - Comprobar permisos de la cuenta de servicio para Firestore y Storage.
Comando para sacar el de la cuenta de servicio, solo se genera este key para probar los test, no es necesario crealas para los deploys
gcloud iam service-accounts keys create key.json --iam-account=Cuenta-de-servicio@proyecto.iam.gserviceaccount.com
#Activar mediante el key.json
gcloud auth activate-service-account --key-file=key.json --project=$PROJECT_ID
#listar
gcloud auth list