firebase-tools "Error: certificate has expired"

firebase-tools "Error: certificate has expired"

今天早上我尝试将我的 React 项目部署到 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

运行 npm install --save firebase-functions@latest 并确保添加

"engines": {
  "node": "8" 
}

在你的package.json

有同样的问题。 将您的本地时钟更改为 2020 年 1 月 4 日之前

如果更新 CLI 后问题仍然存在,请尝试从 firebase 注销并重新登录

firebase logout
firebase login

我更新到最新了,注销+登录。 关闭终端并打开一个新终端后才开始工作

我安装了旧版本的 firebase,它不允许新的 CLI 正确地 运行。我不得不手动删除旧版本,重新安装新版本,然后一切正常。这是我的做法:

  1. 运行 which firebase 在您的终端中查看您的 firebase npm 包的保存位置。
  2. 删除那个文件夹。
  3. 运行 npm i -g firebase-tools@latest
  4. 运行 firebase init 并且您应该重新 运行ning 并且没有任何错误。