Firebase工具从命令行登录

时间:2015-11-26 12:47:28

标签: firebase codeship firebase-tools

我正在使用Codeship来部署firebase应用。 为此,我首先需要使用firebase login命令登录。问题是,我需要在浏览器中登录然后返回命令行并执行部署。 是否有自动方式向Firebase提供凭据?

干杯

4 个答案:

答案 0 :(得分:10)

对于旧版本的firebase-tools,已接受的答案是正确的,但是从版本3开始不再使用。获取令牌的新命令是:

firebase login:ci

你应该将它保存在某种环境变量中,理想情况下是FIREBASE_TOKEN。

然后,对于您打算通过ci运行的任何命令(即deploy),您可以运行:

firebase [command] --token [FIREBASE_TOKEN]

答案 1 :(得分:6)

登录--no - localhost对我有用。然后,您可以将代码粘贴回终端窗口。

答案 2 :(得分:2)

答案:环境变量。

具体来说,使用安装了浏览器和firebase工具的计算机,运行firebase login:ci --no-localhost并将生成的密钥从firebase CLI工具粘贴到环境变量中,并将其命名为FIREBASE_TOKEN(而不是$ FIREBASE_TOKEN)。

在您的部署中,请说

npm install -g firebase-tools
firebase deploy

完成。如果你关心为什么?请继续阅读。

firebase / firebase-tools repo README表示关于Usage with CI Systems的以下内容。

  

Firebase CLI需要浏览器才能完成身份验证,但是   与CI和其他无头环境完全兼容。

     

在具有浏览器的计算机上,安装Firebase CLI。运行firebase login:ci登录并打印出新的访问令牌(当前CLI   会话不会受到影响)。

注意:您确实要输入firebase login:ci --no-localhost

  

在CI中以安全但可访问的方式存储输出令牌   系统。运行Firebase时有两种方法可以使用此令牌   命令:

     

将令牌存储为环境变量FIREBASE_TOKEN,它会   自动使用。使用--token <token>运行所有命令   CI系统中的标志。

  • 注意:您必须使用--token flag
  • 将您的令牌放在引号IIF中
  • BIGGER注意请勿使用$作为环境变量的前缀,否则您将收到以下无意义的错误消息!!!

    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

  

令牌加载的优先顺序为flag,environment   变量,活跃项目。

建议使用环境变量,以便秘密令牌不会存储/显示在日志中。

答案 3 :(得分:1)

请参阅wvm2008's answer了解更新版本

一个选项是mint a token for the build server并通过以下方式将其传递给CLI:

firebase --token <token>

您还可以从交互式登录的系统中获取令牌:

firebase prefs:token

有关更多选项,请参阅this page