我正在使用 Codeship 部署一个 firebase 应用程序。为此,我首先需要使用firebase login
命令登录。问题是,我需要在浏览器中登录,然后返回命令行并执行部署。是否有自动向 Firebase 提供凭据的方法?
干杯
我正在使用 Codeship 部署一个 firebase 应用程序。为此,我首先需要使用firebase login
命令登录。问题是,我需要在浏览器中登录,然后返回命令行并执行部署。是否有自动向 Firebase 提供凭据的方法?
干杯
firebase login --no-localhost 对我有用。您从浏览器获取授权码,您需要将其粘贴到终端窗口中。
接受的答案对于旧版本的 firebase-tools 是正确的,但是从版本 3 开始已弃用。获取令牌的新命令是:
firebase login:ci
您应该将其保存在某种环境变量中,最好是 FIREBASE_TOKEN。
然后,使用您打算通过 ci (ie deploy
) 运行的任何命令,您可以运行:
firebase [command] --token [FIREBASE_TOKEN]
答:环境变量。
具体来说,使用安装了浏览器和 firebase 工具的机器,运行firebase login:ci --no-localhost
firebase 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 系统中运行带有标志的所有命令。
更大的注意不要在你的环境变量前面加上 $ 否则你会在下面得到一个无意义的错误消息!!!
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
令牌加载的优先顺序是标志、环境 变量、活动项目。
建议使用环境变量,这样秘密令牌就不会在日志中存储/可见。
有关更新版本,请参阅wvm2008 的答案
一种选择是为构建服务器生成一个令牌并将其传递给 CLI:
firebase --token <token>
您还可以从您以交互方式登录的系统获取令牌:
firebase login:ci
有关更多选项,请参阅此页面。