11

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

干杯

4

4 回答 4

23

firebase login --no-localhost 对我有用。您从浏览器获取授权码,您需要将其粘贴到终端窗口中。

于 2016-09-21T15:21:12.053 回答
17

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

firebase login:ci

您应该将其保存在某种环境变量中,最好是 FIREBASE_TOKEN。

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

firebase [command] --token [FIREBASE_TOKEN]
于 2016-06-06T16:55:00.900 回答
5

答:环境变量。

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

在您的部署中,说

npm install -g firebase-tools
firebase deploy

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

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

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

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

于 2017-05-16T00:46:33.947 回答
5

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

一种选择是为构建服务器生成一个令牌并将其传递给 CLI:

firebase --token <token>

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

firebase login:ci

有关更多选项,请参阅此页面

于 2015-11-26T15:29:38.367 回答