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

247
Vistas
Firebase no envía correos electrónicos después de la implementación + sin registros

Implementé el código a continuación y funciona perfectamente bien cuando lo ejecuto en una máquina local con npm start

Sin embargo, cuando lo implemento en Firebase, la función sendOrderEmail no funciona.

Ni siquiera recibo ningún registro.

 const functions = require("firebase-functions"); const admin = require("firebase-admin"); const {email, password} = require('./config'); const nodemailer = require('nodemailer'); const htmlToText = require('nodemailer-html-to-text').htmlToText; admin.initializeApp(); const mailTransport = nodemailer.createTransport({ service: 'gmail', auth: { user: email, pass: password } }); mailTransport.use("compile", htmlToText()); const APP_NAME = 'the.Travelest'; exports.sendUserEmail = functions.database .ref("/lettersRequest/{pushId}") .onCreate(request => { return sendOrderEmail(request.val().email); }); async function sendOrderEmail(email){ const mailOptions = { from: `${APP_NAME}`, to: email, subject: `Your order from ${APP_NAME}`, html: ` <div> <strong> Hello </strong> World </div> ` }; return await mailTransport.sendMail(mailOptions); }

ACTUALIZAR Después de verificar la lógica, creo que encontré los problemas en otro lugar.

Entonces, la lógica es: cuando hago clic en ENVIAR en el formulario, envío los datos a Firebase Runtime Database. Y esta acción activa la función anterior y envía el correo electrónico.

Sin embargo, el botón ENVIAR no activa el proceso que debería activar. Ni siquiera veo el resultado de console.log en la consola, cuando hago clic en ENVIAR De nuevo, funciona localmente, cuando ejecuto nom start

Aquí está el controlador de envío:

 const handleSubmit = event => { event.preventDefault(); setErrors(validate(values)) setIsSubmitting(true) try{ const newRequestRef = database.ref('lettersRequest').push(); const newRequest = { country: values.country, travelersAmount: values.travelersAmount, introExtro: values.introExtro, comments: values.comments, email: values.email, phone: values.phone }; newRequestRef.set({ email: values.email, request: newRequest }); console.log("no error") }catch(e){ console.log("error") } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No está manejando la promesa devuelta por set() . Prueba esto:

 const handleSubmit = event => { event.preventDefault(); setErrors(validate(values)) setIsSubmitting(true) const newRequestRef = database.ref('lettersRequest').push(); const newRequest = { country: values.country, travelersAmount: values.travelersAmount, introExtro: values.introExtro, comments: values.comments, email: values.email, phone: values.phone }; newRequestRef.set({ email: values.email, request: newRequest }).then(() => { console.log("Request Added in Database") }).catch(e => console.log(e)); }

Si registra 'Solicitud agregada en la base de datos', entonces se ha agregado correctamente y su función debería activarse.

Además, esto también se puede hacer mediante una función invocable , lo que significa que llama a la función directamente desde el cliente, realiza toda la validación, agrega los datos en la base de datos y envía el correo electrónico en lugar de usar activadores de base de datos.

over 4 years ago · Santiago Trujillo Denunciar

0

Entonces, el problema fue aún más trivial de lo que podría esperar: D Implementé Firebase, pero nunca comprometí y construí el proyecto ... Como resultado, nada se actualizó después de cada implementación.

Estúpido error

over 4 years ago · Santiago Trujillo 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