如何通过命令行(CLI)更改Firebase用户登录身份?

157

我正试图使用用户凭据登录Firebase,假设是User-Alice

但当我执行授权过程时,我收到一条消息说我已登录为User-Bob文档中没有提到这一点,也没有解释如何更改我登录的用户。

我该如何将Firebase已登录的用户从User-Bob更改为User-Alice

谢谢。

11个回答

374

通过命令行界面管理多个用户

从Firebase CLI的版本9.9.0开始,您可以在不重新验证身份的情况下管理多个用户。

firebase login:add
firebase login:list
firebase login:use

例子:

firebase login:add david@example.com
firebase login:add alice@example.com
firebase login:add bob@example.com
firebase login:use alice@example.com
firebase login:list
firebase deploy --only hosting # deploy as alice@example.com

获取一个在终端打印的URL。

firebase login --reauth

在浏览器中使用该链接并使用所需的配置文件。


仍然有效,但不太方便的旧回答

最简单的处理方法是注销用户 Alice 然后登录用户 Bob。

firebase logout
firebase login

但是,如果您在浏览器中使用Google账户作为用户-Alice登录,则需要先在那里退出。


1
请给我更详细的信息。当我尝试时,它会将我作为用户A重新登录。这就是问题的整点。没有办法指定要登录的用户。生成的密钥与不同的用户相关联,我不知道如何更改它。 - Let Me Tink About It
它是否会打开浏览器,让您使用Google帐户登录?还是您通过命令行使用用户名和密码登录? - David East
它打开一个浏览器并强制我使用Google帐户登录。但是当我以想要的用户身份登录时,它显示我的凭据未经授权。在CLI说明中有一个链接,当我将其复制并粘贴到浏览器中时,它会将我登录为错误的用户。即使我正在使用已登录为所需用户的浏览器,它仍然注册错误的用户。 - Let Me Tink About It
2
啊,我刚遇到这个问题。你还需要在浏览器中注销用户。否则,每次都会自动以该用户身份登录。 - David East
3
这不是正确的答案。正确的答案是 firebase login --reauth,由 @john lee 回答(https://dev59.com/jFsX5IYBdhLWcg3wW-b-#44981675)。 - Pooja
显示剩余2条评论

46

使用这个

firebase login --reauth

那么您可以更改账户


很好的建议。只是需要注意...这将生成一个URL。您可以将其复制并粘贴到浏览器窗口中。它会提示您输入不同的凭据。一旦登录,CLI现在将使用该帐户。 - CodeSamurai-like
我遇到了同样的问题,按照你的建议操作后问题得以解决。非常感谢! - Andrecon

16
在最近发布的Firebase CLI(9.9.0版)中,通过新的命令提供了多个账户支持:
  • login:use:使用现有的 Firebase 帐户来登录
  • login:add:将一个新的 Firebase 帐户添加到本地计算机上
  • login:list:列出当前已登录的 Firebase 帐户

参考文献:https://github.com/firebase/firebase-tools/tree/v9.9.0

因此,我使用 firebase login:add 添加了一个新帐户,然后使用 firebase login:use 命令切换到新添加的帐户。


这应该是最佳答案,谢谢你,救了我不少时间。 - Abderrahmen Hanafi

9

5
你可以使用这个命令获取令牌字符串。
firebase login:ci

然后将其设置为FIREBASE_TOKEN环境变量。

您可以保留任意数量的令牌,并通过某些工具(如dotenv)自动设置它们。


正常的注销-登录方法会导致网页弹出身份验证,然后发送安全警告电子邮件(也会发送到任何关联的帐户),接着手机上也会收到安全警告。这种方法可以消除所有这些问题,因此切换变得轻松自如。 - Dave Brueck
尽管令牌方法已被弃用 - Raghav Satyadev
还有这种方法在您不通过 init 创建 Firebase 项目,而只是使用 CLI 进行应用分发时非常有用。 - Raghav Satyadev

4

以下是几个解决方案:

firebase logout
firebase login

或者,

firebase login --reauth

3

首先,您当前登录的Google帐户必须在您的默认浏览器中包含'User Alice'(userAlice@gmail.com)。当您执行firebase logout时,Firebase会提示:

$ firebase logout
Logged out form 'userBob@gmail.com'

firebase login,Firebase 将打开浏览器并获取确认(允许或拒绝)。当您接受/允许后,您可以在终端中看到以下内容。

$ firebase login
Allow Firebase to collect anonymous CLI usage information? Yes

Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=....

Waiting for authentication...

Success! Logged in as 'userAlice@gmail.com'

2
firebase login:add
firebase login:list
firebase login:use youremail

1
你需要在主要浏览器(例如Safari)中退出Google帐户,并以正确的用户身份登录到同一浏览器。尝试在次要浏览器(例如Opera或Chrome)中登录将无法正常工作。必须使用Firebase CLI自动打开的相同浏览器。次要浏览器将被忽略。请保留HTML标签。

0

如果您有不同的Google账户 - 我建议您在Google Chrome中为其拥有不同的浏览器用户配置文件

在输入firebase login之前,请确保您激活了带有所需用户配置文件的相应浏览器窗口。

这样,当切换帐户时,您将不必重新输入密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接