Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

258
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda