Estoy implementando una aplicación react-native . Esencialmente, desde esta aplicación front-end, quiero realizar una solicitud GET a la API de Yelp Fusion, que requiere una clave de API privada (que he guardado en mis notas).
Teniendo en cuenta que una solicitud GET con una clave privada debe ejecutarse desde el lado del servidor, y no desde la aplicación react-native del front-end, quería implementar esta funcionalidad a través de Google Cloud Functions o Firebase Functions.
Esencialmente, ¿cómo desencadeno un evento como este desde un cliente Javascript front-end y qué necesito configurar en Firebase o Google Cloud Functions para que esto funcione?
Pude escribir una función en Firebase Functions, pero no estaba seguro de cómo escribir una solicitud GET en una URL externa a Google Cloud Platform. Tampoco sé cómo activar la solicitud y recibir datos del lado del cliente.
Puede crear una función en la nube con un activador HTTP público para lograr esto.
Los ejemplos en esa página incluyen Cloud Functions basadas en HTTP.
Aquí está el documento sobre cómo llamar a activadores http .
Para implementar una función en la nube con un activador HTTP público:
gcloud functions deploy MYFUNCTION --runtime <your runtime> --trigger-http --allow-unauthenticated
Este comando permite el acceso anónimo para llamar a sus funciones, normalmente necesitaría estar autenticado para hacerlo.
Una vez que abre un disparador en Internet, cualquiera puede llamarlo, así que tenga eso en cuenta con los datos que acepta y devuelve. También es posible que desee establecer un presupuesto en el proyecto que contiene la función en caso de que alguien lo llamara continuamente acumulando una factura para usted.
Cloud Functions para Firebase es una envoltura delgada de Google Cloud Functions, por lo que cualquier enfoque que pueda usar para GCF (como el que propone Jake en su respuesta ) también funciona en Firebase.
Hay dos formas de invocar directamente una función de la nube desde el código de su aplicación con Firebase:
fetch . Esto se describe en la documentación sobre Funciones de llamada a través de solicitudes HTTP.El segundo tipo esencialmente envuelve el primer tipo, pero agrega algunas características como parámetros con nombre, y automáticamente pasa el token de ID y algunos otros parámetros.