by Firebase (open source) Claude Desktop, Claude Code, OpenCode, Windows, macOS, Linux, Node.js 14+
Официальный Firebase Command Line Tools с MCP-сервером — управление проектами Firebase (Firestore, Auth, Hosting, Functions) из AI-агентов.
MCP-сервер для Amazon Web Services. Управляет EC2, S3, Lambda, RDS и другими сервисами AWS через LLM. …
Коллекция официальных MCP-серверов от AWS Labs: CDK, Lambda, S3, Cost Explorer, Nova Canvas и другие AWS-сервисы …
Официальный MCP-сервер Cloudflare: управление Workers, KV, D1, R2, AI Gateway и другими продуктами Cloudflare через AI-агента.
Официальный MCP-сервер Supabase: управление проектами, таблицами, Edge Functions, storage и auth прямо из Claude или любого …
# Установка через npm npm install -g firebase-tools # Установка автономного бинарного файла curl -sL firebase.tools | bash
Интерфейс командной строки Firebase (CLI) можно использовать для тестирования, управления и развёртывания вашего проекта Firebase из командной строки. Этот репозиторий также является домом для официального Firebase MCP-сервера. Для получения дополнительной информации ознакомьтесь с документацией Firebase MCP-сервера.
Чтобы начать работу с Firebase CLI, ознакомьтесь с полным списком команд ниже или изучите документацию.
Вы можете установить Firebase CLI с помощью npm (менеджера пакетов Node). Обратите внимание, что вам потребуется установить Node.js и npm. Установка Node.js должна также установить npm.
Чтобы загрузить и установить Firebase CLI, выполните следующую команду:
npm install -g firebase-tools
Это предоставит вам глобально доступную команду firebase.
Автономный бинарный дистрибутив Firebase CLI позволяет загрузить исполняемый файл firebase без каких-либо зависимостей.
Чтобы загрузить и установить CLI, выполните следующую команду:
curl -sL firebase.tools | bash
Команда firebase --help выводит список доступных команд, а firebase <command> --help показывает более подробную информацию по отдельной команде.
Если команда специфична для проекта, вы должны либо находиться внутри каталога проекта с активным псевдонимом проекта, либо указать идентификатор проекта Firebase с помощью флага -P <project_id>.
Ниже приведён краткий список доступных команд и их функций:
| Команда | Описание |
|---|---|
| login | Аутентификация в вашем аккаунте Firebase. Требует доступа к веб-браузеру. |
| logout | Выход из Firebase CLI. |
| login:ci | Генерация токена аутентификации для использования в неинтерактивных средах. |
| login:add | Авторизация CLI для дополнительного аккаунта. |
| login:list | Список авторизованных аккаунтов CLI. |
| login:use | Установка аккаунта по умолчанию для использования в этом проекте. |
| use | Установка активного проекта Firebase, управление псевдонимами проектов. |
| open | Быстрое открытие браузера для доступа к соответствующим ресурсам проекта. |
| init | Настройка нового проекта Firebase в текущем каталоге. Эта команда создаст файл конфигурации firebase.json в вашем текущем каталоге. |
| help | Отображение справочной информации о CLI или конкретных командах. |
Добавьте флаг --no-localhost к команде входа (например, firebase login --no-localhost), чтобы копировать и вставлять код вместо запуска локального сервера для аутентификации. Это может быть полезно, если вы подключаетесь по SSH к какому-либо серверу и вам нужно аутентифицироваться в Firebase на этой машине.
| Команда | Описание |
|---|---|
| apps:create | Создать новое приложение Firebase в проекте. |
| apps:list | Вывести список зарегистрированных приложений проекта Firebase. |
| apps:sdkconfig | Вывести конфигурацию приложения Firebase. |
| projects:addfirebase | Добавить ресурсы Firebase в проект Google Cloud Platform. |
| projects:create | Создать новый проект Firebase. |
| projects:list | Вывести список всех ваших проектов Firebase. |
Эти команды позволяют развёртывать и взаимодействовать с вашими сервисами Firebase.
| Команда | Описание |
|---|---|
| emulators:exec | Запустить локальные эмуляторы Firebase, выполнить тестовый скрипт, затем завершить работу эмуляторов. |
| emulators:start | Запустить локальные эмуляторы Firebase. |
| deploy | Развернуть ваш проект Firebase. Зависит от конфигурации firebase.json и локальной папки проекта. |
| serve | Запустить локальный сервер с конфигурацией Firebase Hosting и Cloud Functions, запускаемыми по HTTPS. Зависит от firebase.json. |
| setup:emulators:database | Загрузить эмулятор базы данных. |
| setup:emulators:firestore | Загрузить эмулятор Firestore. |
| Команда | Описание |
|---|---|
| appdistribution:distribute | Загрузить бинарный файл релиза и при необходимости распространить его среди тестировщиков и запустить автоматизированные тесты. |
| appdistribution:testers:list | Вывести список тестировщиков в проекте. |
| appdistribution:testers:add | Добавить тестировщиков в проект (и в группу, если она указана через флаг). |
| appdistribution:testers:remove | Удалить тестировщиков из проекта (или из группы, если она указана через флаг). |
| appdistribution:groups:list | Вывести список групп (тестировщиков). |
| appdistribution:groups:create | Создать группу (тестировщиков). |
| appdistribution:groups:delete | Удалить группу (тестировщиков). |
| appdistribution:testcases:export | Экспортировать тест-кейсы в файл YAML. |
| appdistribution:testcases:import | Импортировать тест-кейсы из файла YAML. |
| Команда | Описание |
|---|---|
| auth:import | Пакетный импорт учётных записей в Firebase из файла данных. |
| auth:export | Пакетный экспорт учётных записей из Firebase в файл данных. |
Подробная документация доступна здесь.
| Команда | Описание |
|---|---|
| database:get | Получить данные из базы данных текущего проекта и отобразить их в формате JSON. Поддерживает запросы к индексированным данным. |
| database:set | Заменить все данные по указанному пути в базе данных текущего проекта. Принимает ввод из файла, STDIN или аргумента командной строки. |
| database:push | Добавить новые данные в список по указанному пути в базе данных текущего проекта. Принимает ввод из файла, STDIN или аргумента командной строки. |
| database:remove | Удалить все данные по указанному пути в базе данных текущего проекта. |
| database:update | Выполнить частичное обновление по указанному пути в базе данных текущего проекта. Принимает ввод из файла, STDIN или аргумента командной строки. |
| database:profile | Профилировать использование базы данных и сгенерировать отчёт. |
| database:instances:create | Создать экземпляр базы данных Realtime Database. |
| database:instances:list | Вывести список экземпляров базы данных Realtime Database. |
| database:settings:get | Прочитать настройку базы данных Realtime Database по указанному пути. |
| database:settings:set | Установить настройку базы данных Realtime Database по указанному пути. |
| Команда | Описание |
|---|---|
| ext | Показать информацию о том, как использовать команды расширений и установленные расширения в вашем проекте. |
| ext:configure | Настроить существующий экземпляр расширения. |
| ext:info | Показать информацию о расширении по имени (например, extensionName@x.y.z для конкретной версии). |
| ext:install | Установить расширение. |
| ext:sdk:install | Установить SDK для расширения, чтобы можно было определить расширение в кодовой базе функций. |
| ext:list | Вывести список всех расширений, установленных в вашем проекте Firebase. |
| ext:uninstall | Удалить расширение, установленное в вашем проекте Firebase, по идентификатору экземпляра. |
| ext:update | Обновить существующий экземпляр расширения до последней версии. |
| Команда | Описание |
|---|---|
| firestore:delete | Удалить документы или коллекции из базы данных текущего проекта. Поддерживает рекурсивное удаление подколлекций. |
| firestore:indexes | Вывести список всех развёрнутых индексов в текущем проекте. |
| Команда | Описание |
|---|---|
| functions:log | Просмотреть логи развёрнутых облачных функций. |
| functions:list | Вывести список всех развёрнутых функций в вашем проекте Firebase. |
| functions:config:set | Сохранить значения конфигурации времени выполнения для облачных функций текущего проекта. |
| functions:config:get | Получить существующие значения конфигурации для облачных функций текущего проекта. |
| functions:config:unset | Удалить значения из конфигурации времени выполнения текущего проекта. |
| functions:config:clone | Копирование конфигурации времени выполнения из одной среды проекта в другую. |
| functions:secrets:set | Создание или обновление секрета для использования в Cloud Functions для Firebase. |
| functions:secrets:get | Получение метаданных секрета и его версий. |
| functions:secrets:access | Доступ к значению секрета по его имени и версии. По умолчанию используется последняя версия. |
| functions:secrets:prune | Удаление неиспользуемых секретов. |
| functions:secrets:destroy | Уничтожение секрета. По умолчанию уничтожается последняя версия. |
| functions:delete | Удаление одной или нескольких Cloud Functions по имени или имени группы. |
| functions:shell | Локальная эмуляция функций и запуск Node.js-шелла, где эти локальные функции могут быть вызваны с тестовыми данными. |
| Команда | Описание |
|---|---|
| hosting:disable | Остановка обслуживания трафика Firebase Hosting для активного проекта. После выполнения этой команды на URL-адресе хостинга проекта будет отображаться сообщение «Сайт не найден». |
| Команда | Описание |
|---|---|
| remoteconfig:get | Получение шаблона Remote Config для проекта Firebase. |
| remoteconfig:versions:list | Получение списка последних опубликованных версий шаблона Firebase Remote Config. |
| remoteconfig:rollback | Откат опубликованного шаблона Remote Config проекта к версии, указанной в флаге --version_number. |
| remoteconfig:experiments:get | Получение эксперимента Remote Config. |
| remoteconfig:experiments:list | Получение списка экспериментов Remote Config. |
| remoteconfig:experiments:delete | Удаление эксперимента Remote Config. |
| remoteconfig:rollouts:get | Получение развёртывания Remote Config. |
| remoteconfig:rollouts:list | Получение списка развёртываний Remote Config. |
| remoteconfig:rollouts:delete | Удаление развёртывания Remote Config. |
Используйте firebase:deploy --only remoteconfig для обновления и публикации шаблона Firebase Remote Config проекта.
Firebase CLI может использовать один из четырёх методов аутентификации, перечисленных в порядке убывания приоритета:
firebase-tools; вместо него используйте учётную запись службы - предоставьте явный долгосрочный токен пользователя Firebase, сгенерированный с помощью firebase login:ci. Обратите внимание, что эти токены являются крайне чувствительными долгосрочными учётными данными и не являются подходящим вариантом для большинства случаев. Рассмотрите возможность использования авторизации через учётную запись службы. Токен можно задать одним из двух способов:--token для любой команды, например firebase --token="<token>" projects:list.FIREBASE_TOKEN.firebase login, чтобы войти в CLI непосредственно от своего имени. CLI сохранит авторизованные учётные данные пользователя на вашем устройстве.GOOGLE_APPLICATION_CREDENTIALS, указав путь к файлу ключа учётной записи службы в формате JSON. Подробнее см. в руководстве Google Cloud Начало работы с аутентификацией.gcloud и выполнили вход с помощью gcloud auth application-default login, Firebase CLI будет использовать их при отсутствии других учётных данных.По умолчанию firebase login настраивает одну глобальную учётную запись для всех проектов.
Если у вас несколько учётных записей Google, которые вы используете для проектов Firebase, вы можете авторизовать несколько учётных записей и применять их для каждого проекта или команды отдельно.
Чтобы авторизовать дополнительную учётную запись для использования с CLI, выполните firebase login:add.
Просмотреть список авторизованных учётных записей можно с помощью firebase login:list.
Чтобы задать учётную запись по умолчанию для конкретного каталога проекта Firebase, выполните firebase login:use внутри этого каталога и выберите нужную учётную запись.
Чтобы проверить учётную запись по умолчанию для каталога, выполните firebase login:list — учётная запись по умолчанию для текущего контекста будет указана первой.
Чтобы задать учётную запись для конкретного вызова команды, используйте флаг --account с любой командой. Например: firebase --account=user@domain.com deploy. Указанная учётная запись должна быть предварительно добавлена в Firebase CLI с помощью firebase login:add.
Эмулятор Cloud Functions доступен через команды, такие как emulators:start, serve и functions:shell. Эмулируемые Cloud Functions запускаются как независимые процессы node на вашем компьютере для разработки, что означает наличие собственного механизма обнаружения учётных данных.
По умолчанию эти процессы node не могут обнаруживать учётные данные, полученные через firebase login.
Для улучшения опыта разработки, когда вы выполнили вход в CLI через firebase login, мы берём учётные данные пользователя и создаём временные учётные данные, которые передаём в эмулятор через GOOGLE_APPLICATION_CREDENTIALS. Это делается только в том случае, если вы не задали переменную окружения GOOGLE_APPLICATION_CREDENTIALS самостоятельно.
CLI поддерживает HTTP(S)-прокси через переменные окружения. Чтобы использовать прокси, задайте значение HTTPS_PROXY или HTTP_PROXY в вашем окружении, указав URL прокси (например, HTTP_PROXY=http://127.0.0.1:12345).
Для аутентификации Firebase CLI требуется браузер, но полностью совместим с CI и другими средами без графического интерфейса.
Выполните следующие шаги, чтобы запускать команды Firebase в среде CI. Подробные инструкции для каждого шага см. в руководстве Google Cloud Начало работы с аутентификацией.
GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json в вашей системе CI при выполнении команд Firebase.Чтобы отключить доступ для учётной записи службы, найдите учётную запись службы для вашего проекта в Google Cloud Console, а затем удалите ключ или отключите либо удалите учётную запись.
Firebase CLI также можно использовать программно как стандартный модуль Node. Каждая команда представлена в виде функции, которая принимает позиционные аргументы, за которыми следует объект параметров, и возвращает Promise.
Если мы выполним эту команду в командной строке:
$ firebase --project="foo" apps:list ANDROID
То в Node это будет выглядеть так:
const client = require("firebase-tools");
client.apps
.list("ANDROID", { project: "foo" })
.then((data) => {
// ...
})
.catch((err) => {
// ...
});
Объект параметров должен быть последним аргументом, а любые неуказанные позиционные аргументы получат значение по умолчанию "". Следующие два вызова эквивалентны:
const client = require("firebase-tools");
// #1 - No arguments or options, defaults will be inferred
client.apps.list();
// #2 - Explicitly provide "" for all arguments and {} for options
client.apps.list("", {});
Примечание: при использовании в ограниченной среде, такой как Cloud Functions, не все команды firebase-tools будут работать программно, так как для этого требуется доступ к локальной файловой системе.
Инструмент командной строки для Firebase.
```bash
curl -sL firebase.tools | bash
### Вариант 2: Установка с помощью Yarn
```bash
```bash
$ firebase --project="foo" apps:list ANDROID
### Вариант 3: Установка автономного бинарного файла
Загрузите автономный бинарный файл для своей платформы с [страницы релизов](https://github.com/firebase/firebase-tools/releases).
### Вариант 4: Использование Docker
```bash
```js
const client = require("firebase-tools");
client.apps
.list("ANDROID", { project: "foo" })
.then((data) => {
// ...
})
.catch((err) => {
// ...
});
## Использование
```bash
```js
const client = require("firebase-tools");
// #1 - No arguments or options, defaults will be inferred
client.apps.list();
// #2 - Explicitly provide "" for all arguments and {} for options
client.apps.list("", {});
Запустите `firebase --help`, чтобы получить список всех доступных команд.
### Вход в систему
```bash
Полную документацию по Firebase CLI можно найти на официальном сайте Firebase.
Если у вас возникли проблемы или вопросы, обратитесь за помощью на Stack Overflow с тегом firebase или откройте issue в репозитории GitHub.
Мы приветствуем ваши pull request! Пожалуйста, ознакомьтесь с руководством по участию, прежде чем вносить изменения.
Примечание: Для использования Firebase CLI требуется Node.js версии 14 или выше.
多语言支持 (Поддержка нескольких языков)