这是在使用 Stripe 和 Firebase 功能的 Web Firebase 应用程序的上下文中。
"dependencies": {
"stripe": "^17.2.0",
"twitter-api-v2": "^1.18.0",
"firebase-admin": "^12.4.0",
"firebase-functions": "^6",
"moment-timezone": "^0.5.45"
},
npm -g => [email protected]
一切工作正常,直到我将所有软件包更新到上面显示的版本。 从那时起,当我部署 firebase 函数时(为什么这个错误不仅仅是运行时错误??),我收到错误消息:
Error: Neither apiKey nor config.authenticator provided
at Stripe._setAuthenticator (C:\Users\webko\Documents\AppsAndWebsites\Node\robot\functions\node_modules\stripe\cjs\stripe.core.js:166:23)
at new Stripe (C:\Users\webko\Documents\AppsAndWebsites\Node\robot\functions\node_modules\stripe\cjs\stripe.core.js:102:14)
at Stripe (C:\Users\webko\Documents\AppsAndWebsites\Node\robot\functions\node_modules\stripe\cjs\stripe.core.js:58:20)
at Object.<anonymous> (C:\Users\webko\Documents\AppsAndWebsites\Node\robot\functions\index.js:37:33)
有问题的行是这一行:
const stripe = require('stripe')(process.env.STRIPE_SECRET);
自更新以来,它拒绝“process.env.STRIPE_SECRET”。但是当我将测试密钥硬编码为字符串时工作正常。
这个秘密是在环境中设定的,当我跑步时:
firebase functions:secrets:access STRIPE_SECRET
它正确地显示了秘密。
那么为什么将秘密作为“process.env.STRIPE_SECRET”传递现在已经成为一个问题?
不知道为什么,但这就是我在使用 Stripe 时遇到的情况
16.9.0
,尝试降级到该版本,看看它是否有效。
另外,我认为这与 Firebase 无关,因为我没有使用它。
PS:我发现了一个相关的开放问题。