Я не могу отправлять электронные письма - Firebase CloudFunctions - PullRequest
0 голосов
/ 21 марта 2020

Я новичок в Firebase Cloud Functions и хочу создать на нем почтовую систему. Мне нужно получать электронное письмо в моей учетной записи (например, myemail@gmail.com) каждый раз, когда в мою базу данных реального времени вставляются новые данные. В электронном письме должно содержаться содержимое узла firebase.

Я пытался использовать это код, но при добавлении новых данных в базу данных в реальном времени я не получаю никаких писем:

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');

const nodemailer = require('nodemailer');

const gmailEmail = functions.config().gmail.email;
const gmailPassword = functions.config().gmail.password;
const mailTransport = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'email@gmail.com',
    pass: 'password'
  },
});

admin.initializeApp();

exports.sendEmail = functions.database.ref('/reports/{postId}/{reportId}').onWrite(async (change) => {
  const snapshot = change.after;
  const val = snapshot.val();

  const mailOptions = {
    from: '"Report" <email@gmail.com>',
    to: 'myemail@gmail.com',
  };

  // Building Email message.
  mailOptions.subject = 'Report ' + val.tipo;
  mailOptions.text = 'Content ' +  val;

  try {
    await mailTransport.sendMail(mailOptions);
    console.log('email sent! ');
  } catch(error) {
    console.error('There was an error while sending the email:', error);
  }
  return null;

});

База данных:

  "reports" : {
    "-M2sV-8jze4u8di8rC6a" : {
      "-M2smZT3YgGe6pbHb9ML" : {
        "idAuthor" : "-M2sV-8jze4u8di8rC6a",
        "idReport" : "-M2smZT3YgGe6pbHb9ML",
        "tipo" : "test"
      },

Как я могу отправлять электронные письма с содержимым базы данных?

Заранее спасибо!

...