为什么Node.js 8上的Firebase后台函数会抱怨事件参数



在最近的更新之后,firebase工具希望我将package.json引擎设置设置为节点6或8。当您将其设置为6时,它将在节点6和节点8上部署功能。

使用firebase函数1.0时,背景函数签名从event变为data, context。我很久以前就迁移了所有的后台功能。

我注意到,根据@gloud/functions文档(与firebase-functions不同(,您显式地设置了Node部署目标,并且在API中Node 6和8运行时之间的区别是相同的事件与数据/上下文签名。

因此,在@gloud/functions中,API更改以与firebase-functions不同的方式推出。

Wat似乎很奇怪,如果我现在在引擎设置为节点8的情况下部署我的firebase功能,我会得到这样的错误:

Cloud函数需要使用事件参数进行调用。

当我将引擎设置为节点6时,它说它正在node.js 6上部署我的代码,一切都像以前一样工作。

现在,这似乎与我的预期相反!

因此,我使用了最新的后台函数API,但似乎无法在Node.js8上正确运行它们。某个地方似乎出了问题。有线索吗?

问题是firebase-functions的版本需要在节点8运行时为2.0.0+。

对我来说,这个错误消息出现在1.x.xfirebase-functions中,在我升级后就消失了。

注意,firebase-admin还需要为5.13.0+。

听起来你把很多东西都混在一起了。

首先,@googlecloud/functions和firebase函数可能不同步。他们的工作完全不同。不要以为一方的约定会适用于另一方。为Firebase编写函数时,请仅使用Firebase函数和Firebase CLI。您将无法使用gcloud。

其次,Firebase API在Firebase函数1.0.0中发生了变化。听起来你已经意识到了这一点。API更改与目标节点版本无关。节点版本不应影响API。

最新更新