Firebase Cloud Functions 警告:"Arrow function expected no return value consistent-return"



出于某种原因,当我部署我从未见过的云功能时,我的终端上会得到输出。

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
> functions@ lint /Users/xxxxx/Desktop/cloud_functions/cloud_functions_live/functions
> eslint .

/Users/xxxxx/Desktop/cloud_functions/cloud_functions_live/functions/index.js
38:5  warning  Arrow function expected no return value  consistent-return
✖ 1 problem (0 errors, 1 warning)

索引中的第 38 行.js也是返回return docRef.doc("/payments/${payment}").get()

我在这里输入更多信息只是因为 stackoverflow 说我有太多代码并且不允许我添加更新。 我希望这并不违反政策,因为其他人要求更多的代码,而另一个人对这个问题投了赞成票,表明我已经用有限的细节让其他人识别它,使我的问题足够清晰。

exports.stripeCharge = functions.firestore.document('/payments/{payment}').onCreate((snap, context) => {
console.log("payment data", snap);
const payment = snap.data();
console.log("payment data2", payment.token);
//console.log("payment data2", payment.token.idempotency_key);

if (!payment || payment.charge) return;

var docRef = admin.firestore()
const idempotency_key = payment.idempotency_key;  // prevent duplicate charges
//.document(`/payments/${payment}`);
//var docRef = 
return docRef.doc(`/payments/${payment}`).get()
.then(snapshot => {
console.log("augu", snapshot);
return snapshot;
})
.then(customer => {
const amount = payment.amount;
const source = payment.token;
const currency = payment.currency;
const charge = {amount, currency, source};
console.log("brett", charge);
return stripe.charges.create(charge, { idempotency_key });
})
.then(charge => {
console.log("set charge back");
return docRef.doc(`/charges/${idempotency_key}`).set(charge);
})
})

代码中的问题在于这一行:

if (!payment || payment.charge) return;

由于您稍后返回了一个 promise,因此您需要在此处返回一个膨胀的值,例如 false。

eslint 规则期望如果你从函数返回一些东西,它总是返回一个值。如果这不是您想要的,您可以修改规则以允许未定义并返回未定义。

相关内容

最新更新