Typescript Firebase函数中的onCall函数会导致Firebase函数日志中出现未经处理的拒绝错误

Typescript Firebase函数中的onCall函数会导致Firebase函数日志中出现未经处理的拒绝错误,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,通过遵循Firebase文档和Stripe API文档,我创建了一个函数,该函数通过传递的令牌创建费用。此函数是使用Firebases onCall函数设置的,可以直接从我的应用程序调用它 遗憾的是,当您调用函数时,Stripe返回一个错误,尽管函数似乎没有将错误发送给客户端,因为我的客户端认为这是一个成功 index.ts中的Firebase函数 export const oneTimeCharge = functions.https.onCall((data, context) =>

通过遵循Firebase文档和Stripe API文档,我创建了一个函数,该函数通过传递的令牌创建费用。此函数是使用Firebases onCall函数设置的,可以直接从我的应用程序调用它

遗憾的是,当您调用函数时,Stripe返回一个错误,尽管函数似乎没有将错误发送给客户端,因为我的客户端认为这是一个成功

index.ts中的Firebase函数

export const oneTimeCharge = functions.https.onCall((data, context) => {
  stripe.charges.create({
    amount: data.amount,
    currency: data.currency,
    source: data.source,
    description: data.description
  }).then((charge) => {
    return {'charge':charge};
  }).catch((error) => {
    throw new functions.https.HttpsError('unknown', 'Something went wrong!', error);
  })
});
调用此函数时,Firebase函数日志显示以下两个错误。这让我相信我的functions.https.HttpsError是不正确的

错误1

Unhandled rejection
错误2

Error: Something went wrong!
at stripe.charges.create.then.catch (/srv/lib/index.js:37:15)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)
错误:出了问题!
在stripe.charges.create.then.catch(/srv/lib/index.js:37:15)
在
在进程中。_tickDomainCallback(internal/process/next_tick.js:229:7)

我在Angular中的服务函数将其作为成功返回。我错过了什么或做错了什么?我觉得我已经在谷歌上搜索了好几个小时。

使用云功能,您需要返回一个承诺,在所有异步工作完成时解决。对于可调用类型函数,该承诺必须与要发送到客户端的数据进行解析。现在,您的函数没有从顶级函数返回任何内容。您至少应该尝试返回从stripe.charges.create(…).then(…).catch(…)返回的承诺:


请仔细阅读,以确保您理解自己的义务,同时确保您完全理解承诺是如何起作用的,否则事情将无法按您预期的方式进行。

感谢您对答案的解释以及添加链接所花费的时间。我要试一试!非常感谢。
return stripe.charges.create(...)
    ...