我正在用Js构建我的第一个firebase函数,以便用www.example.com API处理卡支付Checkout.com,我已经安装了checkout和firebase JavaScript SDK,这是我的index.js文件夹:
const functions = require("firebase-functions");
const { Checkout } = require("checkout-sdk-node");
const cko = new Checkout("sk_test_XXXXX-XXXX-XXXX");
exports.payWithToken = functions.https.onCall(async (data, context) => {
try {
const payment = await cko.payments.request({
source: {
token: data.token,
},
customer: {
email: context.auth.token.email
},
currency: data.currency,
amount: data.amount,
})
return {
"Status": payment.status,
"3DS-Link": payment.redirectLink,
"Approved": approved,
"Flagged": risk.flagged,
};
} catch (error) {
console.log(error)
throw new functions.https.HttpsError(error.name, error.message, error);
}
});
我认为我正确地遵循了文档,但由于某种原因,我无法将此函数部署到firebase,并得到以下错误:
Parsing error: Unexpected token =>
3条答案
按热度按时间anhgbhbe1#
在package.json中,
更改此
对此
c0vxltue2#
我在this page上找到了解决方案。
基本上
箭头函数是ES6的一个特性,但这里有一个异步箭头函数。
异步功能通常是ES 8(或2017)的一个功能。因此,您需要在配置的根目录下指定以下设置:解析器选项:{ecma版本:8 //或2017年}
因此,我需要将我的.eslintrc.js文件更新为
vs3odd8k3#
我遇到了同样的问题。
我使用的ESLint配置与Firebase函数示例GitHub repo中的一个函数所使用的配置相同。https://github.com/firebase/functions-samples/tree/main/child-count,它使用异步函数。
我删除了eslintrc.js,并替换为与上述示例相同的eslintrc.json文件。此外,在package.json中,添加了一个新的依赖项
"eslint-plugin-promise": "^4.3.1"
,并删除了默认的"eslint-config-google": "^0.14.0"
(同样,与上述示例相同)。这似乎已经为我解决了它。