我正在使用Firebase函数进行条带化支付集成。此特定功能用于通过条带注册客户。
节点版本10.15.3
npm版本6.9.0
“ ecmaVersion”:.eslintrc.json中的6
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const stripe = require('stripe')(functions.config().stripe.testkey)
exports.createStripeCustomer = functions.auth.user()
.onCreate(async (user) => {
const customer = await
stripe.customers.create({email: user.email});
await admin.firestore()
.collection('stripe_customers')
.doc(user.uid)
.set({customer_id: customer.id});
});
代码与github示例中提供的firebase平台相同 https://github.com/firebase/functions-samples/blob/master/stripe/functions/index.js
解析错误:意外的令牌=>
如果在.eslintrc.json中将“ ecmaVersion”:6更改为“ ecmaVersion”:8
then error is .onCreate(async (user) => {
^
SyntaxError: Unexpected token (
我想正确部署功能,以便用户可以在条带上注册并存储在Firebase存储中的日期
答案 0 :(得分:2)
确保您正在本地计算机节点> = 8上运行。要进行部署,应将其放在package.json中。
{
//...
"engines": {
"node": "8"
},
//...
}
对于eslint,要启用对异步功能的解析,您应该在配置中包括以下内容:
{
"parserOptions": {
"ecmaVersion": 2017
}
}
答案 1 :(得分:0)
好像您是在谈论eslint错误。我已经能够使用ecmaVersion 2015在eslint演示页面中reproduce进行
。我刚刚将其更改为ecmaVersion 2017(支持async/await
时的版本),错误消失了(link)。
此外,请验证您正在谈论的项目中的eslint配置。这是ecmaVersion 2017:link
答案 2 :(得分:0)
我是 React-native + firebase 功能的新手。但是有了这些代码行,lint 问题就解决了,我现在可以部署 firebase 函数了。
旧
{
"$schema": "./node_modules/@react-native-firebase/app/firebase-schema.json",
"react-native": {
"crashlytics_auto_collection_enabled": true,
"crashlytics_debug_enabled": true,
"messaging_android_notification_channel_id": "high-priority",
"messaging_ios_auto_register_for_remote_messages": true
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
],
"source": "functions"
}
}
新
{
"$schema":"./node_modules/@react-native-firebase/app/firebase-schema.json",
"react-native": {
"crashlytics_auto_collection_enabled": true,
"crashlytics_debug_enabled": true,
"messaging_android_notification_channel_id": "high-priority",
"messaging_ios_auto_register_for_remote_messages":true
}
}