【发布时间】:2021-06-30 09:57:20
【问题描述】:
当我将 functions.auth.user().onCreate(async (user) => { 替换为 functions.https.onRequest((req, res) => { 时,我最终会收到以下错误:
解析错误:意外的标记 stripeslint
strip. 出现此错误
const strip = require('stripe')('KeyString');
exports.createConnectAccount = functions.auth.user().onCreate(async (user) => {// functions.https.onRequest((req, res) => {
// Set your secret key. Remember to switch to your live secret key in production.
// See your keys here: https://dashboard.stripe.com/account/apikeys
const account = await strip.accounts.create({ //get error here: strip
type: 'express',
});
let refURL = account.refresh_url
let retURL = account.return_url
console.log("mi caca la caca 00>", account, retURL, refURL, account.uid, account.userId, account.userRef, account.user, account.id, account.ref, account.pushId, account.customer_id)
});
Packedge.json
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "12"
},
"main": "index.js",
"dependencies": {
"@google-cloud/logging": "^9.1.0",
"firebase-admin": "^9.2.0",
"firebase-functions": "^3.11.0",
"stripe": "^8.56.0"
},
"devDependencies": {
"eslint": "^6.8.0",
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.2.0"
},
"private": true
}
【问题讨论】:
-
HTTPS云函数声明时需要使用
async关键字。functions.https.onRequest(async (req, res) => {...}。你也应该正确地终止它,见firebase.google.com/docs/functions/terminate-functions。 -
@RenaudTarnec 我之前尝试过,虽然它看起来可行,但我在下面的代码中收到以下奇怪的警告:ibb.co/6w5JfBH Unexpected function expression.eslintprefer-arrow-callback
-
你需要使用promise版本而不是回调版本。
-
似乎这解决了问题,把它写下来作为答案,这样我就接受了。 @RenaudTarnec
标签: javascript firebase google-cloud-functions eslint jslint