Firebase CLI通过令牌进行身份验证

Firebase CLI通过令牌进行身份验证,firebase,firebase-tools,Firebase,Firebase Tools,我按照官方(命令行)中描述的步骤使用CI系统(没有浏览器集成的简单操作系统)。我使用我的电脑登录firebase并获取令牌(从浏览器过程)。我在另一个系统上复制了令牌,并在all命令中传递了令牌,但它不起作用。我收到一条消息,需要对我进行身份验证才能执行这些操作: firebase login firebase prefs:token 复制并在其他系统中使用令牌 firebase list --token sdfgfdsg...... 有什么问题吗 请确保不要在您的电脑上运行fireb

我按照官方(命令行)中描述的步骤使用CI系统(没有浏览器集成的简单操作系统)。我使用我的电脑登录firebase并获取令牌(从浏览器过程)。我在另一个系统上复制了令牌,并在all命令中传递了令牌,但它不起作用。我收到一条消息,需要对我进行身份验证才能执行这些操作:

firebase login 
firebase prefs:token 
复制并在其他系统中使用令牌

firebase list --token sdfgfdsg...... 

有什么问题吗

请确保不要在您的电脑上运行
firebase注销
,因为这样做会使令牌无效(我们不支持)

如果不是,请确保您引用的是令牌:

firebase list --token '-K.....|.....'

auth令牌中包含的字符可能会导致shell错误,如果没有引用,则会阻止命令正确完成。

我在Travis中遇到过同样的问题,问题是Travis使用的令牌的加密,您必须确保已正确转义令牌中的管道符号。 就我而言 travis加密“FIREBASE_令牌=-jksdjksjdj\| ksdkjsjk”

希望这有帮助,因为我可以向您保证,如果您这样做:

firebase部署--令牌'-jksdjksjj | ksdkjsjk'

在特拉维斯,它只是工作。 firebase由于某种原因无法识别您案例中的令牌,您需要找到该原因

看看这个:

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

在您的部署中,例如

npm install -g firebase-tools
firebase deploy

正是我所做的,在其他系统上使用令牌之前注销!谢谢!!因此,为了使令牌在所有CI服务器中保持活动状态,您必须让机器始终登录?在共享CI系统中,不建议这样做,因为任何有权访问终端的人都可以运行
echo FIREBASE\u TOKEN
,并拥有您的令牌。在封闭系统中,这是很好的,但对于试图将其用于生产CI系统的大多数人来说,这不是最佳实践。