Вход в инструменты Firebase из командной строки

Я использую Codeship для развертывания приложения firebase. Для этого мне сначала нужно войти в систему с помощью команды firebase login. Проблема в том, что мне нужно войти в браузер, а затем вернуться в командную строку и выполнить развертывание. Существует ли автоматизированный способ предоставления учетных данных в Firebase?

Ваше здоровье


person atardadi    schedule 26.11.2015    source источник


Ответы (4)


См. ответ wvm2008 для получения более свежей версии

Одним из вариантов может быть отчеканить токен для сервера сборки. и передайте его в CLI с помощью:

firebase --token <token>

Вы также можете получить токен из системы, в которой вы вошли в систему с помощью:

firebase login:ci

Дополнительные параметры см. на на этой странице.

person Frank van Puffelen    schedule 26.11.2015
comment
Я пропустил эту ссылку. Спасибо! - person atardadi; 27.11.2015
comment
Обратите внимание, что этот ответ предназначен для старой версии firebase-tools. Смотрите ответ wvm2008 ниже. - person dragly; 05.03.2017

firebase login --no-localhost - это то, что сработало для меня. Вы получаете код авторизации из браузера, который необходимо вставить в окно терминала.

person tw56    schedule 21.09.2016
comment
Это правильный ответ и самый простой. - person BuffMcBigHuge; 14.12.2020

Принятый ответ верен для старой версии firebase-tools, однако он устарел с версии 3. Новая команда для получения токена:

firebase login:ci

Вы должны сохранить это в какой-то переменной среды, в идеале, в FIREBASE_TOKEN.

Затем с любой командой, которую вы собираетесь запускать через ci (например, deploy), вы можете запустить:

firebase [command] --token [FIREBASE_TOKEN]
person wvm2008    schedule 06.06.2016
comment
Если вы используете переменную среды FIREBASE_TOKEN, все, что вам нужно, это firebase [команда], и она используется автоматически, если только вы не указали флаг --token, который не является предпочтительным, поскольку он отображает секретный ключ в журналах. (см. мой ответ). Не ставьте префикс env var с $!!!! - person Ronnie Royston; 16.05.2017

Ответ: переменные среды.

В частности, используя компьютер с установленными браузером и инструментами Firebase, запустите firebase login:ci --no-localhost и вставьте полученный ключ из инструмента CLI firebase в переменную среды и назовите ее FIREBASE_TOKEN (не $FIREBASE_TOKEN).

В вашем развертывании скажем

npm install -g firebase-tools
firebase deploy

Сделанный. Если вас волнует Почему? Читать дальше.

README репозитория firebase/firebase-tools указывает следующее относительно использования с системами CI< /а>.

Интерфейс командной строки Firebase требует браузера для завершения аутентификации, но он полностью совместим с CI и другими безголовыми средами.

На компьютере с браузером установите интерфейс командной строки Firebase. Запустите firebase login:ci, чтобы войти в систему и распечатать новый токен доступа (текущий сеанс CLI не будет затронут).

ПРИМЕЧАНИЕ. На самом деле вы хотите ввести firebase login:ci --no-localhost

Сохраните выходной токен безопасным, но доступным способом в вашей системе CI. Есть два способа использовать этот токен при выполнении команд Firebase:

Сохраните токен как переменную среды FIREBASE_TOKEN, и он будет использоваться автоматически. Запустите все команды с флагом --token <token> в вашей системе CI.

  • ???? ПРИМЕЧАНИЕ. Вы ДОЛЖНЫ поместить свой токен в кавычки IIF, используя флаг --token.
  • ???? ????БОЛЬШОЕ ПРИМЕЧАНИЕ НЕ добавляйте к переменной окружения префикс $, иначе вы получите бессмысленное сообщение об ошибке ниже!!!

    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

Приоритет загрузки токена следующий: флаг, среда переменная, активный проект.

???? Рекомендуется использовать переменную среды, чтобы секретный токен не сохранялся/не отображался в журналах.

person Ronnie Royston    schedule 16.05.2017