我创建了一个firebase函数,它在触发后发送电子邮件。问题是,当我尝试部署它时,它会给我一个错误
- 函数:已完成预部署脚本的运行。i函数:确保所需的API cloudfunctions.googleapis.com已启用。。。i函数:确保所需的API cloudbuild.googleapis.com已启用
- 函数:已启用必需的API cloudbuild.googleapis.com
- 函数:已启用必需的API cloudfunctions.googleapis.comi函数:准备上传函数目录。。。i函数:用于上传的打包函数(40.62 KB(
- 函数:函数文件夹上载成功i函数:创建Node.js 10函数sendMail(us-central1(
部署的函数出现以下函数错误:sendMail(us-central1(
要尝试重新部署这些函数,请运行:firebase deploy-only";函数:sendMail";
要继续部署其他功能(如数据库(,请运行:firebase部署——除了功能
错误:函数未正确部署。
这是我当前的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const nodemailer = require('nodemailer');
const cors = require('cors')({origin: true});
admin.initializeApp();
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'yourgmailaccount@gmail.com',
pass: 'yourgmailaccpassword'
}
});
exports.sendMail = functions.https.onRequest((req, res) => {
cors(req, res, () => {
const dest = req.query.dest;
const mailOptions = {
from: 'Your Account Name <yourgmailaccount@gmail.com>',
to: dest,
subject: 'I'M A PICKLE!!!',
html: `<p style="font-size: 16px;">Pickle Riiiiiiiiiiiiiiiick!!</p>`
};
return transporter.sendMail(mailOptions, (erro, info) => {
if(erro){
return res.send(erro.toString());
}
return res.send('Sended');
});
});
});
我该如何解决此问题?
此问题的原因可能很难调试,许多用户通过更改CLI版本解决了此问题,其他用户则只需要重新部署。
- 运行命令
firebase deploy --only "functions:sendMail"
- 更新到最新的
firebase-tools@latest
- 将
firebase-tools@8.20.0
降级到以前的主要版本 - 其他版本可以在firebase工具中找到