【发布时间】:2019-09-25 21:16:37
【问题描述】:
我正在使用 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 存储中的条带和日期存储上注册
【问题讨论】:
-
我认为不需要异步,只需从您的 onCreate 方法中删除异步即可。exports.createStripeCustomer = functions.auth.user().onCreate((user) => { // ... }) ;
-
现在它给出解析错误:Unexpected token admin
-
您在运行代码时收到此错误还是 eslint 错误?
-
我认为代码在函数部署正确并且新用户注册到 firebase authentication 时运行。在创建用户时运行此代码。但是错误在终端中给出了这些行:npm ERR!代码 ELIFECYCLE npm 错误! errno 1 npm 错误!函数@ lint:
eslint .npm ERR!退出状态 1 npm ERR! npm 错误! functions@lint 脚本失败。 -
@ray 所以它显然不喜欢 async/await 语法。但是:这个 node 失败了吗?因为我很确定节点本身可以很好地运行它。您确定这不仅仅是您的 linter/transpiler 是一些不知道 async/await 是真正关键字的旧版本吗?
标签: javascript node.js firebase google-cloud-functions stripe-payments