提问人:MartinJ 提问时间:11/25/2022 最后编辑:Frank van PuffelenMartinJ 更新时间:11/29/2022 访问量:67
为什么我的 Firebase/Postmark 电子邮件发送功能无法部署?
Why does my Firebase/Postmark email despatch function fail to deploy?
问:
我的函数的 Firebase 部署失败,并显示以下错误:
“函数在加载用户代码时失败。这可能是由于用户代码中的错误。
函数代码如下:
const postmark = require("postmark");
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp()
exports.sendPostmarkEmailFunction = functions.firestore.
document('/postmarklogs/{documentId}').
onCreate((snapShot, context) => {
var serverToken = "_my_client_key_";
var client = new postmark.ServerClient(serverToken);
try {
client.sendEmail({
"From": "_my_depatch_address_",
"To": "_my_receipt_address_",
"Subject": snapShot.data().subject,
"HtmlBody": snapShot.data().message
});
return true;
} catch (error) {
console.log("Error : " + error.ErrorCode + " : " + error.Message);
return false;
}
});
此代码在 Firebase 模拟器中运行良好。据我所知,部署问题是由线路专门触发的。如果我注释掉这一点,该函数就会部署 - 但当然它不起作用!const postmark = require("postmark");
建议将不胜感激。
答:
0赞
MartinJ
11/28/2022
#1
邮戳需要安装在项目的“functions”文件夹中。我已将其安装到项目的正文中,因此指导部署构建阶段的“functions/package.json”文件中缺少 Postmark。创建的“functions”文件夹就像项目中的项目,需要这样对待。firebase init functions
我从部署“构建”日志中发现了问题 在“functions”文件夹中安装Postmark后,我的sendPostmarkEmailFunction函数可以完美地工作。
顺便说一句,除非你已经知道这一点,否则 Postmark API 令牌确实需要安全地保存在 Firebase 环境变量存储中。此外,虽然您可能很想使用 https.onRequest 触发器而不是此处使用的 onCreate(),但您可能想知道,当与 Postmark 一起使用时,这可能会让您陷入无休止的 CORS 问题。
下一个:带点的文本自动转换为 URL
评论