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

258
Vistas
Funciones invocables de Firebase. Promise devuelve nulo en el cliente (Cloud Functions)

Desarrollé esta función de base de fuego para devolver datos de mi búsqueda de aplicaciones (elástico). Cuando lo registro en la consola de funciones, puedo ver los datos de la solicitud y también puedo ver el cuerpo de la respuesta en mis registros de API de búsqueda de aplicaciones. Pero no puedo obtener los datos del cliente.

Cuerpo de respuesta

 { "meta": { "alerts": [], "warnings": [], "precision": 2, "page": { "current": 1, "total_pages": 1, "total_results": 2, "size": 10 }, "engine": { "name": "engine", "type": "default" }, "request_id": "DF4VEuzuQpWAHH8VCBkvDg" }, "results": [ { "nome": { "raw": "Produto legal" }, "_meta": { "engine": "engine", "score": 0.8957006, "id": "bnxvuzVXIQ4BxqHxjvgt" }, "id": { "raw": "bnxvuzVXIQ4BxqHxjvgt" } }, { "nome": { "raw": "Produto massa" }, "_meta": { "engine": "engine", "score": 0.3164503, "id": "rdG192xjSVCLIEBNg0la" }, "id": { "raw": "rdG192xjSVCLIEBNg0la" } } ] }

función base de fuego

 exports.searchProdutos = functions.https.onCall((data, context) => { const options = { search_fields: { nome: {} }, result_fields: { nome: { raw: {} } }, }; const query = data.query; client .search("engine", `${query}`, options) .then((response) => { return response; }) .catch((error) => console.log(error.errorMessages)); });

Pero cuando trato de llamarlo en el cliente y registrar la respuesta, obtengo dos objetos nulos registrados en la consola.

Llamada de función en el cliente

 const searchProdutos = httpsCallable(functions, "searchProdutos"); const getProdutos = async () => { const results = await searchProdutos({ query: "produto" }); console.log(results.data); }; getProdutos();

Información adicional: estoy usando Nodejs App Search en mis funciones y reacciono como mi biblioteca/marco frontend

Editar: también recibo una respuesta de 200. Así que supongo que no hay nada malo con la solicitud. Intenté eliminar .then de la función de mi cliente, pero sigo recibiendo data: {null} dos veces

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Estoy publicando una respuesta Wiki de la comunidad para este hilo con el fin de tener una solución disponible para futuros usuarios. Según los comentarios de Kevin B en el hilo de la sala de chat , hay un problema con el código del lado del cliente que llama a su función Firebase. Cuando su código de cliente registra la respuesta con una declaración then , esta declaración then no devuelve la respuesta, sino un valor undefined , esto hace que la respuesta se pierda después de ser registrada.

Además, la función Firebase del lado del servidor no devuelve la promesa a la aplicación cliente dentro de la función client.search() . Según los comentarios de la sala de chat, su función de Firebase debería devolver la respuesta de client.search() .

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