无法使用 firebase 导出条带 API

Can't export stripe API with firebase

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

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

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

functions/index.js 的最底部,我导出了我的 express 应用程序和上面显示的条纹 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.

我发现如果我注释掉导出条纹的行 api,这个错误就会消失。为什么会这样?

试试这个:

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

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