Firebase云功能部署错误-HTTP错误:400,接收到无效的JSON有效负载

问题描述

我在项目中使用stripe-firestore-invoices功能。我需要对其进行自定义以满足我的用例,因此我没有安装扩展,而是下载了源代码并尝试进行部署。 但是,send the invoice函数(这是一个Firestore处理函数)未部署,并引发以下错误

!  functions: Failed to create function devInvoice-sendInvoice
HTTP Error: 400,Invalid JSON payload received. UnkNown name "children" at 'function': Cannot find field.
Invalid JSON payload received. UnkNown name "exit" at 'function': Cannot find field.
Invalid JSON payload received. UnkNown name "message" at 'function': Cannot find field.

我正在运行firebase-tools的最新版本:v8.9.0

我尝试将依赖项更新为最新版本:

firebase-functions:v3.11.0
firebase-admin:v9.1.1
stripe:v8.89.0

仍然存在相同的错误

解决方法

好笑-因为我做的是完全相同的事情(仅在我的情况下,使用firestore-stripe-subscriptions),因此遇到了这个问题。

如果运行以下命令,它将为错误消息提供线索:

hello() {
  echo "Setting 'greeting'"
  greeting='Hello'
}
hello "$@"

问题是缺少触发器。

奇怪的是,我发现根本原因似乎是Stripe源中的错误(至少这似乎是阻止我的部署的原因...)

从以下位置更改https处理程序:

firebase deploy --only functions --debug

functions.handler.https.onRequest

为我解决了这个问题。