Как сгенерировать токен аутентификации Firebase из командной строки для использования во внешних конвейерах сборки/развертывания?

<сильный>1. Кратко опишите проблему. Я пытаюсь создать токен Firebase для использования в конвейере развертывания Bitbucket.

У меня есть инструменты firebase, установленные на виртуальной машине GCE, и я не запускаю инструменты firebase на своем локальном компьютере (Windows).


На виртуальной машине GCE (моя сборочная машина) я клонировал свой код.

Я установил инструменты firebase (на виртуальную машину GCE), а затем cd'd в свой код/репозиторий.

Я побежал: firebase init

Затем я запустил: firebase login:ci, мне дали URL-адрес (в консоли виртуальной машины GCE), [proc@mpi-dev-proc1 bin]$ firebase login:ci

Посетите этот URL-адрес на любом устройстве, чтобы войти в систему: https://accounts.google.com/o/oauth2/auth?client_id=....

Я вставил это в свой веб-браузер на своем компьютере с Windows, меня попросили выбрать учетную запись, чтобы продолжить работу с Firebase CLI. Я выбрал свой аккаунт GCP.

У меня появляется диалоговое окно: "Firebase CLI" хочет получить доступ к вашей учетной записи Google..., я нажимаю [Разрешить].

Затем меня перенаправляют на URL-адрес локального хоста: http://localhost:9005/?state=445583251...

ПОЧЕМУ?

У меня нет сервера, работающего на моем локальном компьютере с Windows, или чего-либо на «localhost», прослушивающего порт 9005,

Почему мне предоставляется URL-адрес localhost:9005? Я не понимаю, это не имеет смысла. Что здесь должно произойти?

Я пытаюсь создать токен firebase для использования в конвейерах сборки/развертывания Bitbucket.

<сильный>2. Расскажите о том, что вы уже пробовали

О: См. выше. Я также просмотрел документацию Firebase

<сильный>3. Покажи код

Я выполнил эту команду на виртуальной машине GCE, где у меня установлены firebase-tools (на виртуальной машине CentOS 7) firebase login:ci

<сильный>4. Опишите ожидаемые и фактические результаты, включая любые сообщения об ошибках

Мне нужно сгенерировать токен для конвейера развертывания Firebase (bitbucket), я работаю над виртуальной машиной GCE с установленными firebase-tools.


person user10664542    schedule 17.09.2019    source источник
comment
Я разместил ответ ниже о том, что должно произойти, и что происходит для меня. Если вы не получаете такой же вывод, можете ли вы показать, какую часть вывода вы получаете?   -  person Frank van Puffelen    schedule 17.09.2019


Ответы (2)


Попробуйте с firebase login:ci --no-localhost, это не запустит процесс localhost, но вам нужно открыть URL-адрес в браузере и вставить обратно код со страницы, чтобы получить токен CI.

person fractalix    schedule 11.10.2019

Этот процесс localhost запускается интерфейсом командной строки Firebase именно для того, чтобы перехватить перенаправление после того, как вы войдете в систему и предоставите ему разрешение. После этого CLI продолжает (по крайней мере, для меня) и печатает токен:

$ firebase login:ci

Перейдите по этому URL-адресу на этом устройстве, чтобы войти в систему: https://accounts.google.com/o/oauth2/auth?client_id=...&redirect_uri=http%3A%2F%2Flocalhost%3A9005

Ожидание аутентификации...

✔ Успех! Используйте этот токен для входа на сервер CI:

1/8C......gPY

Если вы проверите URL-адрес, вы увидите там localhost:%3A9005. Но, как сказано, вам не нужно ничего с этим делать, так как это всего лишь часть внутренностей CLI.

person Frank van Puffelen    schedule 17.09.2019
comment
это решение не работает. Это та же самая команда, которую я указал в задаче. Когда вы нажимаете на сгенерированный URL-адрес, он перенаправляется на «localhost: 9005» и заканчивается там. Я ничего не запускаю на локальном хосте. Я запускаю инструменты firebase на виртуальной машине GCP — в вашем решении вы запускали инструменты firebase не на виртуальной машине GCP, а на своем локальном компьютере. - person user10664542; 17.09.2019
comment
Как уже говорилось, интерфейс командной строки Firebase должен запустить для вас процесс на localhost:9005. Это был один из ваших вопросов, на который я ответил. Как я прокомментировал, остальная часть моего ответа просто показывает, что должно произойти. Если вы получаете что-то другое, покажите результат в аналогичном формате. - person Frank van Puffelen; 17.09.2019