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

246
Views
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 answers
Answer question

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 Report

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 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!