首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Firebase/Postmark电子邮件发送功能无法部署?

为什么我的Firebase/Postmark电子邮件发送功能无法部署?
EN

Stack Overflow用户
提问于 2022-11-24 18:14:41
回答 1查看 41关注 0票数 0

我的函数的Firebase部署失败,出现以下错误:

“函数在加载用户代码时失败。这可能是由于用户代码中的错误所致。”

下面是函数代码:

代码语言:javascript
复制
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");行具体触发的。如果我注释掉这一点,这个函数就会部署--但是它当然不能工作!

如能提出建议,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-11-28 13:39:13

邮戳需要安装在项目的“功能”文件夹中。我已经将它安装到项目的主体中,因此,指导部署构建阶段的“functions/Package.json”文件中缺少了Postmark。firebase init functions创建的“函数”文件夹就像项目中的一个项目,需要这样处理。

一旦我的sendPostmarkEmailFunction函数安装到'functions‘文件夹中,我就发现了部署"build“日志中的问题。

顺便说一下,除非您已经知道这一点,否则邮戳API令牌确实需要安全地保存在Firebase environment variable商店中。此外,虽然您可能会尝试使用https.onRequest触发器而不是这里使用的onCreate(),但是您可能希望知道,当与Postmark一起使用时,这可能会使您陷入无休止的CORS问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74564834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档