无法使用火库导出条带 API



我有一个使用firebase的项目。在functions/index.js中,我在顶部附近有下面的导入代码。这将使用我的firebase配置中的生产api密钥初始化stripe api实例。

const stripeProd = require('stripe')(functions.config().stripe.secret)

在我的测试文件中,我使用Sinon进行存根和嘲讽。

functions/index.js的最底部,我导出我的express应用程序和上面显示的stripe api的实例:

exports.app = functions.runWith(runtimeOptions).https.onRequest(app)
// export these so they can be stubbed in UTs
exports.stripeProd = stripeProd
//.... other exports

这个导出让我成功地截取条纹,这样我的UT就不会进行API调用。

然而,当我尝试用firebase serve启动时,我会得到以下错误:

❮❮❮ firebase serve
// ... stuff
i  hosting: Serving hosting files from: public
✔  hosting: Local server: http://localhost:5000
⚠  functions: Maximum call stack size exceeded
⚠  Your function was killed because it raised an unhandled error.

我发现,如果我注释掉导出stripeapi的行,这个错误就会消失。为什么会发生这种情况?

试试这个:

const Stripe = require('stripe');
const stripeProd = new Stripe(functions.config().stripe.key, {
apiVersion: '2020-08-27' //this value should be whatever api version you are using
});
//...
exports.stripeProd = stripeProd

我希望它能有所帮助,我还建议从其他文件导入您的条纹函数,以便更有条理地工作。

相关内容

  • 没有找到相关文章

最新更新