今天早上我尝试将我的反应项目部署到Firebase主机,但我收到此错误:
Error: Server Error. certificate has expired
然后我尝试执行firebase list
命令以查看我的项目列表,但再次收到相同的错误!我在其他项目上尝试了它,结果相同。所以我相信这个错误与特定项目无关,它与firebase-tools
有关。以下是错误日志:
[debug]
[debug] [2020-01-07T03:37:57.789Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[debug] [2020-01-07T03:37:57.789Z] > authorizing via signed-in user
[debug] [2020-01-07T03:37:57.792Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects
[debug] [2020-01-07T03:37:58.566Z] Error: certificate has expired
at TLSSocket.<anonymous> (_tls_wrap.js:1116:38)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket._finishInit (_tls_wrap.js:643:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:473:38)
[error]
[error] Error: Server Error. certificate has expired
我找到了解决方案。首先,这样做:
npm i -g firebase-tools@latest
看起来我使用的是过时的Firebase CLI。发生此错误的原因是,旧版本的 CLI 与不再正常运行的旧版 Firebase 服务相关联。升级到最新的 CLI 版本是唯一的解决方案。
然后,您需要使用新命令而不是已弃用的命令。例如:
firebase projects:list //instead of firebase list
可能需要:
sudo npm i -g firebase-tools@latest --force
我更新到最新版本并注销+登录。 关闭终端并打开新终端后才开始工作
有同样的问题。 将当地时钟更改为 2020 年 1 月 4 日之前
我安装了旧版本的firebase
,不允许新的 CLI 正常运行。我不得不手动删除旧版本,重新安装新版本,然后一切正常。这是我是如何做到的:
- 在终端中运行
which firebase
,查看 Firebase npm 包的保存位置。 - 删除该文件夹。
- 运行
npm i -g firebase-tools@latest
firebase init
运行,您应该可以再次启动并运行,没有任何错误。
运行npm install --save firebase-functions@latest
并确保添加
"engines": {
"node": "8"
}
在你的包中.json
如果在更新 CLI 后问题仍然存在,请尝试从 Firebase 注销并重新登录
firebase logout
firebase login