我托管了一个firebase解决方案。每次在git中完成提交时,我都会使用Jenkins构建,运行测试和部署。
所以jenkins运行的最后一个shell命令给了我这个问题:
firebase deploy --non-interactive --token "MY TOKEN GOES HERE"
我从控制台上运行命令
获得此令牌firebase login:ci
打开浏览器,确认后会给你一个令牌。
但是当我在本地运行命令时这会起作用,但是当我在jenkins上运行它时,我得到:
Error: Your refresh token has been revoked, please login to obtain a
new one.
我的猜测是我需要运行
firebase login:ci
来自运行部署命令的同一个控制台,但我如何在Jenkins中执行此操作?
还有其他猜测吗?
答案 0 :(得分:0)
这就是我所做的,在jenkins上安装了nodejs插件。然后在Jenkins设置中,配置工具-> NodeJs安装->“要安装的全局npm软件包”,我刚刚将其添加到firebase-tools ..
在我的本地Windows计算机中,我添加了nodejs,然后安装了firebase-tools并运行firebase login:ci,这在我使用凭据登录到Firebase后为我提供了令牌。
在Jenkins中,从构建后的管道脚本中,我执行了以下操作,firebase部署--token'******'。而已。我能够部署它。
答案 1 :(得分:0)
firebase login --no-localhost
将生成一个链接,在任何浏览器中手动打开并生成令牌。
您可以从浏览器复制生成的令牌并将其粘贴到您的 cli 中。
答案 2 :(得分:-1)
我遇到了同样的问题。另外,我们用Jenkins运行firebase。
首先,我们尝试了与您相同的命令。
firebase login:ci
我复制了Firebase提供的网址,在我输入凭据后,我被重定向到localhost。
所以,我尝试了以下命令:
firebase login --interactive
同样,我已经复制了粘贴在浏览器中的URL,但是没有办法粘贴生成的令牌。它始终显示以下消息:
Waiting for authentication...
所以,我尝试了以下命令:
firebase login --no-localhost
然后,它显示了令牌的提示:
? Paste authorization code here: 4/UnzYx4O3aB...
最后,它可以登录。
我希望这可以帮助别人。