我正在尝试部署firebase函数并得到错误:
错误:获取Run service undefined失败
我已经尝试更新firebase-tools,但是没有帮助。你能帮忙解决吗?
我在windows 10中也有同样的错误。firebase deploy --only functions
v11.18.0已修复此错误。
npm install -g firebase-tools --force
npm audit fix
确保实际更新了firebase-tools。试试firebase --version
,看看是不是v11.18.0
。
我使用全局pnpm
安装了firebase,因此npm update
实际上没有更新正确的包。
正如其他人指出的那样,这是旧版本的问题。
手工处理:在部署前,进入Firebase管理控制台,删除那里所有现有的云功能。如果控制台是干净的,则部署命令将工作。
妥善解决:升级firebase cli版本
在macOS上,我注意到无论我运行多少次npm install
,它都不会真正更新。
这个命令最终为我更新了它:
curl -sL https://firebase.tools | upgrade=true bash
用firebase --version
验证,我的现在在11.22.0
。
经过一天的尝试和错误。我注意到,无论我做什么firebase --version
从不更新。v11.0.1
或者其他的。我尝试了一个简单的方法来解决这个问题,如下所示:
- 从官方网页下载firebase独立二进制文件
- [可选]复制到C:firebase(方便下次访问) 从那里运行它,它将打开一个终端,你现在可以
cd E:somefilelocationtocloud_functions
,然后你可以做firebase init
和firebase deploy
此外,当您打开终端时,您可以检查firebase --version
,以查看该终端是否具有最新版本的firebase-tools,而不像全局windows cmd。至少这为我解决了问题,我想分享它,以防它可能会帮助别人!也检查节点版本。我选择了节点16,它对于firebase-functions 3.20.0和npm 8.19.3来说太新了。使用nvm use 14
进行选择就可以了。
另一个快速的解决方法是直接通过google云控制台部署该功能。
安装最新版本的firebase-functions包,并将functions/package中的节点从10更改为14。Json为我做了这些。删除包。Json可能也是明智的。