firebase - Firebase - 云函数返回未定义
问题描述
我正在尝试利用 nodemailer 和 firebase 云功能构建一个邮件功能:
const functions = require('firebase-functions');
const nodemailer = require('nodemailer');
const gmailEmail = functions.config().gmail.email;
const gmailPassword = functions.config().gmail.password;
const mailTransport = nodemailer.createTransport("smtps://gmailEmail:gmailPassword@smtp.gmail.com");
const test = 'some.email@gmail.com'
const APP_NAME = 'Dati fatturazione elettronica';
exports.sendDatas = functions.database.ref('/datiFatt/{pushId}').onCreate((data) => {
console.log(data);
const name = data.name;
const pec = data.pec
const id = data.id;
return sendEmail(name, pec, id);
});
function sendEmail(name, pec, id) {
const mailOptions = {
from: `${gmailEmail}`,
to: test
};
mailOptions.subject = `Data from ${name}!`;
mailOptions.html = `${name} \n ${pec} \n ${id} `;
return mailTransport.sendMail(mailOptions)
.then(() => {
return console.log('New email sent to:', test);
});
}
但不知何故,这个函数在其所有字段中返回“未定义”。可能我以错误的方式访问数据。
解决方案
您的sendEmail
功能可能是错误的。你正在尝试return console.log
。
尝试调整为以下格式;
function sendEmail(name, pec, id) {
const mailOptions = {
from: `${gmailEmail}`,
to: test
};
mailOptions.subject = `Data from ${name}!`;
mailOptions.html = `${name} \n ${pec} \n ${id} `;
return mailTransport.sendMail(mailOptions)
.then(() => {
console.log('New email sent to:', test);
return;
});
}
推荐阅读
- r - 在 R 中为系统发育树中的每个进化枝着色
- php - 使用php插入两个不同的mysql表
- python - 这是在 Python 中打开 .csv 文件的正确方法吗?
- css - 围绕多行元素的响应式内容
- python - 比较两个数据框列以匹配字符串或者是子字符串然后在熊猫中计数
- html - 如何使用引导程序在 Reactjs 中单行显示 4 张卡片
- cassandra - 监控 Cassandra 集群的脚本
- angular - 将结果从 api 映射到 observables
- python - 从 Python 中的网格数据集计算 30 年气候平均值
- typescript - TypeScript 忽略的接口方法参数类型