在最近的更新之后,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。