Firebase工具从命令行登录

ata*_*adi 5 firebase codeship firebase-tools

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

干杯

wvm*_*008 11

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

firebase login:ci
Run Code Online (Sandbox Code Playgroud)

您应该将其保存在某种环境变量中,理想情况下是FIREBASE_TOKEN.

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

firebase [command] --token [FIREBASE_TOKEN]
Run Code Online (Sandbox Code Playgroud)


Fra*_*len 6

有关更新版本,请参阅wvm2008 的答案

一种选择是为构建服务器创建一个令牌并将其传递到 CLI 中:

firebase --token <token>
Run Code Online (Sandbox Code Playgroud)

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

firebase login:ci
Run Code Online (Sandbox Code Playgroud)

请参阅此页面了解更多选项。


小智 6

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


Ron*_*ton 5

答案:环境变量。

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

在您的部署中,说

npm install -g firebase-tools
firebase deploy
Run Code Online (Sandbox Code Playgroud)

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

firebase/firebase-tools repo README 指出了以下有关使用 CI 系统的信息

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

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

注意:您实际上想要输入 firebase login:ci --no-localhost

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

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

  • 注意:您必须使用 --token 标志将您的令牌放在引号 IIF 中
  • 更大的注意不要在你的环境变量前面加上 $ 否则你会在下面得到一个无意义的错误消息!!!

    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

令牌加载的优先顺序是标志、环境 变量、活动项目。

建议使用环境变量,这样秘密令牌就不会在日志中存储/可见。