firebase login
命令登录。问题是,我需要在浏览器中登录,然后返回到命令行执行部署。
有没有自动提供凭据给Firebase的方法?谢谢
firebase login
命令登录。问题是,我需要在浏览器中登录,然后返回到命令行执行部署。
有没有自动提供凭据给Firebase的方法?firebase login --no-localhost
对我很有用。您需要从浏览器中获取授权码,然后将其粘贴到终端窗口中。
接受的答案在旧版本的firebase-tools中是正确的,但自版本3起已被弃用。获取令牌的新命令为:
新版本 firebase-tools 已经更新,使用如下命令获取令牌:
firebase login:ci
最好将这个保存在某种环境变量中,最理想的是FIREBASE_TOKEN。
接下来,对于您打算通过ci运行的任何命令(即deploy
),可以运行:
firebase [command] --token [FIREBASE_TOKEN]
请参考wvm2008的答案,以获得更加更新的版本
其中一种选择是为构建服务器铸造令牌,并使用以下方式将其传递到CLI中:
firebase --token <token>
您还可以从与您进行交互式登录的系统中获取令牌:
firebase login:ci
更多选项请参见此页面。
firebase login:ci --no-localhost
命令,并将firebase CLI工具生成的密钥粘贴到一个环境变量中,并将其命名为FIREBASE_TOKEN(而不是$FIREBASE_TOKEN)。npm install -g firebase-tools
firebase deploy
已完成。如果您想知道为什么,请继续阅读。
firebase/firebase-tools库的README文件指出了以下有关与CI系统一起使用的信息。
Firebase CLI需要浏览器来完成身份验证,但与CI和其他无头环境完全兼容。
在具有浏览器的计算机上,安装Firebase CLI。运行
firebase login:ci
以登录并打印新的访问令牌(当前CLI会话不会受到影响)。
注意:实际上您要输入 firebase login:ci --no-localhost
将输出令牌以安全但可访问的方式存储在您的CI系统中。在运行Firebase命令时,有两种使用此令牌的方法:
将令牌存储为环境变量FIREBASE_TOKEN,它将自动被利用。在您的CI系统中使用
--token <token>
标志运行所有命令。
更重要的提示:请勿在环境变量前加$,否则您将收到一个无意义的错误消息!
Your CLI authentication needs to be updated to take advantage of new features.
Please run firebase login --reauth
Error: Command requires authentication, please run firebase login
令牌加载的优先顺序为标志、环境变量、活动项目。
建议使用环境变量,以便密钥令牌不会存储/显示在日志中。