Я настроил функцию firebase с помощью nodemailer, чтобы получить данные из моей базы данных firebase, подключенной к моей контактной форме, и отправить ее по электронной почте.
Я успешно развернул функцию и вижу еепоявляется в моей консоли firebase, однако я не получаю никаких ошибок в консоли и не вижу никаких журналов или информации в разделе функций консоли.И это просто сейчас не работает.
Это первый раз, когда я делаю это, и я рассмотрел почти все другие подобные вопросы по SO, но ни один из них не дал мне никаких подсказок относительно того, что я делаю неправильно.
Это мои функции package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"dependencies": {
"firebase-admin": "~7.0.0",
"firebase-functions": "^2.3.0",
"nodemailer": "^6.1.1"
},
"devDependencies": {
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.1.6"
},
"private": true
}
и это код index.js внутри папки функций:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const nodemailer = require("nodemailer");
const gmailEmail = "k****l@gmail.com";
const gmailPassword = functions.config().gmail.pass;
admin.initializeApp();
var goMail = function(message) {
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: gmailEmail,
pass: gmailPassword
}
});
const mailOptions = {
from: gmailEmail, // sender address
to: "****l@gmail.com", // list of receivers
subject: "!", // Subject line
text: "!" + message, // plain text body
html: "!" + message // html body
};
const getDeliveryStatus = function(error, info) {
if (error) {
return console.log(error);
}
console.log("Message sent: %s", info.messageId);
};
transporter.sendMail(mailOptions, getDeliveryStatus);
};
exports.onDataAdded = functions.database
.ref("/messages/{messageId}")
.onCreate(function(snap, context) {
const createdData = snap.val();
var name = createdData.name;
var email = createdData.email;
var number = createdData.number;
var message = createdData.message;
goMail(name, email, number, message);
});
Я неуверен, что мои настройки неверны или я делаю что-то не так с кодом nodemailer в index.js.
Заранее спасибо за помощь.