Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

90
Vistas
Firestore Cloud Function devuelve indefinido al cliente cuando realizo la operación de publicación de axios

Buen día, estoy tratando de procesar el pago usando Firestore Cloud Function y una pasarela de pago llamada Yoco. Mi código de pago funciona y devuelve un objeto de falla o éxito. Cuando hago logger.log, puedo ver el objeto, pero el problema es cuando intento devolver el resultado al Cliente. Me sigo sin definir. Mis métodos son asíncronos.

 CLIENT SIDE I want to response from server and update my UI const handlePay = () => { if (amount > 100) { yoco.showPopup({ amountInCents: amount, // 2 decimal places begining from left currency: "ZAR", name: "Student Angel", description: "Helping students deal with student debt", callback: function (result) { // This function returns a token that your server can use to capture a payment if (result.error) { const errorMessage = result.error.message; alert("error occured: " + errorMessage); } else { paymentMethod({ token: result.id, amount: amount }); } // In a real integration - you would now pass this chargeToken back to your // server along with the order/basket that the customer has purchased. }, }); } else { toast.error( "Due to high transaction charges, We can only process R100 and above. Thank you" ); } }; const paymentMethod = ({ token, amount }) => { const handlePayments = httpsCallable(functions, "handlePayments"); handlePayments({ token, amount }) .then((result) => { console.log(result); }) .catch((result) => { console.log(result); }); };
 THIS IS CLOUD FUNCTION exports.handlePayments = functions.https.onCall(async (data, context) => { // Using a testing key Not Production Key const SECRET_KEY = "sk_test_5ca384cdyerp8kY188a435e95fbe"; // check auth state if (!context.auth) { throw new functions.https.HttpsError( "unauthenticated", "You are not authenticated" ); } const token = data.token; const amount = data.amount; await axios // I have tried this return await axios.post but nothing .post( "https://online.yoco.com/v1/charges/", { token: token, amountInCents: amount, currency: "ZAR", }, { headers: { "X-Auth-Secret-Key": SECRET_KEY, }, } ) .then((res) => { // res.status will contain the HTTP status code // res.data will contain the response body functions.logger.log(res); return res; }) .catch((error) => { return error; }); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Eliminé la espera en mi llamada axios y la reemplacé con return. en mis devoluciones de llamada .then y catch en lugar de regresar

 return res

o

 return error

Accedo a la propiedad de datos de esta manera

 return res.data

También eliminó el error que estaba recibiendo en mis registros de funciones en la nube Se excedió el tamaño máximo de la pila de llamadas

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda