今天早上,我尝试将我的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中]