好久没写文章了,今天心血来潮,突然想写一篇firebase cli login授权登录问题的文章。至于什么是firebase,我就不过多介绍了。

相信很多站长朋友在使用firebase部署静态网站的过程中,或多或少都会被firebase login这个问题搞破脑袋,谷歌的这个操作简直就是反人类。

我就简单的说一下:

1.安装Firebase命令行工具


npm install -g firebase-tools

2.登录到您的Firebase帐户


firebase login

3.proxifier开启代理全部流量,之后跳转到浏览器,登录自己的账户授权给firebase cli

4.成功授权后,再跳转到localhost:9005/xxxxxx,直接给你一个错误网页,导致回调失败,而无法登陆

5.重新登录到您的Firebase帐户,使用无浏览器命令


firebase login --no-localhost

6.在cmd窗口中,会给出一个url,我们把这个url复制到浏览器,再次授权,之后会得到一段长数字,我们把这段数字复制到cmd中,然后又出现红色错误

7.此方法试了10遍以上,只有一次成功过,至于原因我也搞不懂

8.成功之后,使用firebase logout退出,再次尝试登陆,依然如之前一样,搞不懂谷歌的这个骚操作,哈哈~

今天我就来解决这个问题

有两种方法,一种是使用谷歌服务账号秘钥,另一种是使用token,推荐使用前者

谷歌服务账号秘钥步骤如下:

a.官网地址:https://firebase.google.com/

b.转到控制台,选择您的项目,点进去后,在项目概览旁边有个齿轮,就是设置按钮,选择项目设置,服务账号,创建服务账号,生成新的私密

c.把该json文件下载到本地,比如我放在了


C:\Users\Administrator\Desktop\firebase\key.json

d.打开cmd,cd到你要部署到firebase的目录

e.设置临时环境变量,若要永久的,可以在系统变量里面添加


set GOOGLE_APPLICATION_CREDENTIALS=C:\Users\Administrator\Desktop\firebase\key.json

f.输入下面命令,测试一下


firebase projects:list

g.出现项目列表,就说明连接成功了,之后就可以部署了

利用token步骤图如下:

a.无浏览器登录:


firebase login --no-localhost

b.复制url到浏览器,授权后会得到一串数字


4/0AQSTgQGxxxx-xxxx_xxxxxx-xxxxxxxxxxxxxxxx

c.使用下面的命令,验证成功即可


firebase use --token 4/0AQSTgQGxxxx-xxxx_xxxxxx-xxxxxxxxxxxxxxxx

结束语录:

相比较这两者,个人强烈建议使用服务账号秘钥,而谷歌也会在不久之后移除token方式认证。

可以参考文档:https://cloud.google.com/docs/authentication/getting-started

https://firebase.google.com/docs/cli?authuser=0&hl=zh-cn#sign-in-test-cli

https://cloud.google.com/docs/authentication/application-default-credentials?hl=zh-cn

谷歌iam控制台:https://console.cloud.google.com/iam-admin