Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1K
Views
Funciones de Firebase Cloud: diferencia entre onRequest y onCall

Al revisar los documentos, encontré:

...puede llamar a funciones directamente con una solicitud HTTP o una llamada del cliente .

~ fuente

allí (enlace en la cita) hay una mención sobre functions.https.onCall .

Pero en el tutorial aquí , se usa otra función functions.https.onRequest , entonces, ¿cuál debo usar y por qué? ¿Cuál es la diferencia/similitud entre ellos?

La documentación para functions.https está aquí .

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La documentación oficial para ellos es realmente útil, pero desde el punto de vista de un aficionado, las diferencias descritas fueron confusas al principio.

  • Ambos tipos , cuando se implementan, se asignan con una URL de punto final HTTPS única y se puede acceder a ellos directamente mediante un cliente https.

  • Sin embargo, hay una diferencia importante en la forma en que se supone que deben llamarse .

    • onCall : desde firebase.functions() del cliente
    • onRequest : a través del cliente https estándar (por ejemplo fetch() API en JS)

en llamada

  • Se puede invocar (y este es también el objetivo principal) directamente desde la aplicación del cliente.

     functions.httpsCallable('getUser')({uid}) .then(r => console.log(r.data.email))
  • Se implementa con data proporcionados por el usuario y context automático .

     export const getUser = functions.https.onCall((data, context) => { if (!context.auth) return {status: 'error', code: 401, message: 'Not signed in'} return new Promise((resolve, reject) => { // find a user by data.uid and return the result resolve(user) }) })
  • El context contiene automáticamente metadatos sobre la solicitud, como uid y token .

  • Los data entrada y los objetos de response se (des) serializan automáticamente.

bajo pedido

  • Documentos onRequest de Firebase

  • Sirve principalmente como un punto final de Express API.

  • Se implementa con objetos de Request y Response express.

     export const getUser = functions.https.onRequest((req, res) => { // verify user from req.headers.authorization etc. res.status(401).send('Authentication required.') // if authorized res.setHeader('Content-Type', 'application/json') res.send(JSON.stringify(user)) })
  • Depende de los encabezados de autorización proporcionados por el usuario.

  • Usted es responsable de los datos de entrada y respuesta.

Lea más aquí ¿Es mejor el nuevo activador https.onCall de Firebase Cloud Functions?

over 4 years ago · Santiago Trujillo Report

0

La principal diferencia entre onCall y onRequest para el cliente es la forma en que se invocan. cuando define una función usando onCall, por ejemplo

 exports.addMessage = functions.https.onCall((data, context) => { // ... return ... });

lo invocas en el lado del cliente usando la función Firebase SDK del cliente, por ejemplo

 // on the client side, you need to import functions client lib // then you invoke it like this: const addMessage = firebase.functions().httpsCallable('addMessage'); addMessage({ text: messageText }) .then((result) => { // Read result of the Cloud Function. });

más información para onCall: https://firebase.google.com/docs/functions/callable

Pero si define su función usando onRequest, por ejemplo

 exports.addMesssage = functions.https.onRequest((req, res) { //... res.send(...); }

puede llamarlo usando la API de búsqueda JS normal (no es necesario importar las funciones de firebase client lib en el lado del cliente), por ejemplo

 fetch('<your cloud function endpoint>/addMessage').then(...)

esta es la gran diferencia que debe tener en cuenta al decidir cómo definir sus funciones en el servidor.

más información para onRequest: https://firebase.google.com/docs/functions/http-events

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!