Справочник по интерфейсу командной строки Firebase

Интерфейс командной строки Firebase (GitHub) предоставляет различные инструменты для управления проектами Firebase, их просмотра и развертывания.

Прежде чем использовать Firebase CLI, настройте проект Firebase.

Как настроить или обновить CLI

Как установить интерфейс командной строки Firebase

Вы можете установить интерфейс командной строки Firebase, используя метод, который соответствует вашей операционной системе, уровню опыта и/или варианту использования. Независимо от способа установки у вас будет доступ к одним и тем же функциям и команде firebase.

Windows macOS Linux

Windows

Установить Firebase CLI для Windows можно одним из следующих способов:

Вариант Описание Рекомендовано для...
отдельный исполняемый файл; Скачайте отдельный исполняемый файл для интерфейса командной строки. Затем вы можете получить доступ к исполняемому файлу, чтобы открыть оболочку, в которой можно выполнить команду firebase. Новые разработчики

Разработчики, которые не используют или не знакомы с Node.js
npm Используйте npm (менеджер пакетов Node), чтобы установить интерфейс командной строки и включить глобально доступную команду firebase. Разработчики, использующие Node.js

отдельный исполняемый файл;

Чтобы скачать и запустить исполняемый файл для интерфейса командной строки Firebase, выполните следующие действия:

  1. Скачайте двоичный файл CLI Firebase для Windows.

  2. Получите доступ к исполняемому файлу, чтобы открыть оболочку, в которой можно выполнить команду firebase.

  3. Войдите в аккаунт и протестируйте CLI.

npm

Чтобы установить интерфейс командной строки Firebase с помощью npm (менеджера пакетов Node), выполните следующие действия:

  1. Установите Node.js с помощью nvm-windows (менеджера версий Node). При установке Node.js автоматически устанавливаются инструменты командной строки npm.

  2. Установите интерфейс командной строки Firebase с помощью npm, выполнив следующую команду:

    npm install -g firebase-tools

    Эта команда включает глобально доступную команду firebase.

  3. Войдите в аккаунт и протестируйте CLI.

macOS или Linux

Установить Firebase CLI для macOS или Linux можно одним из следующих способов:

Вариант Описание Рекомендовано для...
автоматический скрипт установки Выполните одну команду, которая автоматически определит вашу операционную систему, скачает последнюю версию интерфейса командной строки и активирует команду firebase, доступную в любой точке системы. Новые разработчики

Разработчики, которые не используют или не знакомы с Node.js

Автоматическое развертывание в среде CI/CD
отдельный исполняемый файл; Скачайте отдельный исполняемый файл для интерфейса командной строки. Затем вы можете настроить и запустить исполняемый файл в соответствии со своим рабочим процессом. Полностью настраиваемые рабочие процессы с использованием интерфейса командной строки
npm Используйте npm (менеджер пакетов Node), чтобы установить интерфейс командной строки и включить глобально доступную команду firebase. Разработчики, использующие Node.js

скрипт автоматической установки;

Чтобы установить интерфейс командной строки Firebase с помощью скрипта автоматической установки, выполните следующие действия:

  1. Выполните следующую команду cURL:

    curl -sL https://firebase.tools | bash

    Этот скрипт автоматически определяет вашу операционную систему, скачивает последнюю версию CLI Firebase и включает команду firebase, доступную во всем мире.

  2. Войдите в аккаунт и протестируйте CLI.

Другие примеры и подробную информацию об этом скрипте можно найти в его исходном коде на сайте firebase.tools.

отдельный исполняемый файл;

Чтобы скачать и запустить исполняемый файл для интерфейса командной строки Firebase, предназначенный для вашей ОС, выполните следующие действия:

  1. Скачайте Firebase исполняемый файл CLI для своей ОС: macOS | Linux

  2. (Необязательно.) Настройте команду firebase, доступную во всех странах.

    1. Сделайте исполняемый файл двоичным, выполнив команду chmod +x ./firebase_tools.
    2. Добавьте путь к исполняемому файлу в переменную PATH.
  3. Войдите в аккаунт и протестируйте CLI.

npm

Чтобы установить Firebase CLI с помощью npm (менеджера пакетов Node), выполните следующие действия:

  1. Установите Node.js с помощью nvm (менеджера версий Node).
    При установке Node.js автоматически устанавливаются инструменты командной строки npm.

  2. Установите интерфейс командной строки Firebase с помощью npm, выполнив следующую команду:

    npm install -g firebase-tools

    Эта команда включает глобально доступную команду firebase.

  3. Войдите в аккаунт и протестируйте CLI.

Войдите в аккаунт и протестируйте интерфейс командной строки Firebase

После установки CLI необходимо пройти аутентификацию. Затем вы можете подтвердить аутентификацию, перечислив свои проекты Firebase.

  1. Войдите в Firebase с аккаунтом Google, выполнив следующую команду:

    firebase login

    Эта команда подключает локальный компьютер к Firebase и предоставляет вам доступ к проектам Firebase.

  2. Проверьте, правильно ли установлен интерфейс командной строки и есть ли у него доступ к вашему аккаунту. Для этого запросите список проектов Firebase. Выполните следующую команду:

    firebase projects:list

    Список должен совпадать со списком проектов Firebase в консоли Firebase.

Как обновить CLI до последней версии

Как правило, рекомендуется использовать последнюю версию Firebase CLI.

Способ обновления версии интерфейса командной строки зависит от вашей операционной системы и способа установки интерфейса.

Windows

MacOS

  • Скрипт автоматической установки: выполните команду curl -sL https://firebase.tools | upgrade=true bash.

  • отдельный исполняемый файл: скачайте новую версию и замените ее в системе;

  • npm: запустите npm install -g firebase-tools.

Linux

  • Скрипт автоматической установки: выполните команду curl -sL https://firebase.tools | upgrade=true bash.

  • отдельный исполняемый файл: скачайте новую версию и замените ее в системе;

  • npm: запустите npm install -g firebase-tools.

Как удалить интерфейс командной строки Firebase

Способ удаления CLI зависит от вашей операционной системы и способа установки CLI.

Windows

  • Отдельный исполняемый файл. Удалите скачанный исполняемый файл firebase.exe.
  • npm: запустите npm uninstall -g firebase-tools.

MacOS

  • Скрипт автоматической установки: выполните curl -sL https://firebase.tools | uninstall=true bash

  • Отдельный исполняемый файл. Удалите скачанный исполняемый файл firebase. Если вы добавили его местоположение в переменную среды PATH, обязательно удалите его.

  • npm: запустите npm uninstall -g firebase-tools.

Linux

  • Скрипт автоматической установки: выполните curl -sL https://firebase.tools | uninstall=true bash

  • Отдельный исполняемый файл. Удалите скачанный исполняемый файл firebase. Если вы добавили его местоположение в переменную среды PATH, обязательно удалите его.

  • npm: запустите npm uninstall -g firebase-tools.

Как использовать CLI с системами непрерывной интеграции

При использовании CLI с системами CI мы рекомендуем выполнять аутентификацию с помощью Application Default Credentials.

(Рекомендуется) Использовать Application Default Credentials

Интерфейс командной строки Firebase обнаружит и использует Application Default Credentials, если они заданы. Самый простой способ аутентификации CLI в CI и других средах без графического интерфейса – настроить Application Default Credentials.

(Устаревшая версия) Используйте FIREBASE_TOKEN

Вы также можете пройти аутентификацию с помощью FIREBASE_TOKEN. Этот способ менее безопасен, чем Application Default Credentials, и больше не рекомендуется.

  1. На компьютере с браузером установите Firebase CLI.

  2. Чтобы начать процесс входа, выполните следующую команду:

    firebase login:ci
  3. Перейдите по указанному URL и войдите в аккаунт Google.

  4. Напечатать новый токен обновления. Текущий сеанс CLI не будет затронут.

  5. Сохраните полученный токен в безопасном, но доступном месте в вашей системе CI.

  6. Используйте этот токен при выполнении команд firebase. Вы можете выбрать один из двух вариантов:

    • Вариант 1. Сохраните токен как переменную среды FIREBASE_TOKEN. Система автоматически использует токен.

    • Вариант 2. Выполните все команды firebase с флагом --token TOKEN в системе непрерывной интеграции.
      Токены загружаются в следующем порядке: флаг, переменная среды, нужный проект Firebase.

Как инициализировать проект Firebase

Для выполнения многих распространенных задач с помощью интерфейса командной строки, например развертывания в проекте Firebase, требуется каталог проекта. Вы создаете каталог проекта с помощью команды firebase init. Обычно каталог проекта совпадает с корневым каталогом системы контроля версий. После запуска firebase init в каталоге появляется файл конфигурации firebase.json.

Чтобы инициализировать новый проект Firebase, выполните следующую команду в каталоге приложения:

firebase init

Команда firebase init поможет вам настроить каталог проекта и некоторые продукты Firebase. При инициализации проекта интерфейс командной строки Firebase предложит вам выполнить следующие задачи:

  • Выберите проект Firebase по умолчанию.

    На этом шаге текущий каталог проекта связывается с проектом Firebase, чтобы команды, относящиеся к проекту (например, firebase deploy), выполнялись в нужном проекте Firebase.

    Также можно связать несколько проектов Firebase (например, проект для подготовки и проект для выпуска) с одним каталогом проекта.

  • Выберите продукты Firebase, которые нужно настроить в проекте Firebase.

    На этом шаге вам будет предложено задать конфигурации для определенных файлов для выбранных продуктов или функций. Подробнее о конфигурациях можно узнать в документации по продукту (например, Hosting или Authentication). Обратите внимание, что вы всегда можете запустить firebase init позже, чтобы настроить другие продукты Firebase.

После инициализации Firebase автоматически создает в корневом каталоге вашего локального приложения два файла:

  • Файл конфигурации firebase.json, в котором перечислены настройки проекта.

  • Файл .firebaserc, в котором хранятся псевдонимы проекта.

Файл firebase.json

Команда firebase init создает файл конфигурации firebase.json в корневом каталоге проекта.

Файл firebase.json необходим для развертывания ресурсов с помощью интерфейса командной строки Firebase, поскольку в нем указано, какие файлы и настройки из каталога проекта будут развернуты в проекте Firebase (например, настройки Hosting, конфигурации поставщика Authentication, правила безопасности и конфигурация Cloud Functions). Поскольку некоторые настройки можно задать как в каталоге проекта, так и в консоли Firebase, убедитесь, что вы устранили все возможные конфликты развертывания.

Большинство параметров Firebase Hosting можно настроить непосредственно в файле firebase.json. Однако для других сервисов Firebase, которые можно развернуть с помощью интерфейса командной строки Firebase, команда firebase init создает специальные файлы, в которых можно задать настройки для этих сервисов, например файл index.js для Cloud Functions. Вы также можете настроить хуки до и после развертывания в файле firebase.json.

В файле firebase.json ниже приведены примеры конфигурации для многих сервисов Firebase. В нем также показаны такие функции, как настройка нескольких баз кода Cloud Functions, Local Emulator Suite и шаблона Remote Config. Обратите внимание, что файл firebase.json для любого проекта будет содержать только конфигурации сервисов Firebase, настроенных для этого проекта (например, только Firebase Hosting и Cloud Functions). Добавление ключа $schema позволяет выполнять проверку и автозаполнение во многих редакторах кода.

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "auth": {
        "providers": {
          "anonymous": true,
          "emailPassword": true,
          "googleSignIn": {
            "oAuthBrandDisplayName": "My App",
            "supportEmail": "support@myapp.com"
          }
        }
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

По умолчанию используется флаг firebase.json, но вы можете передать флаг --config PATH, чтобы указать альтернативный файл конфигурации.

Конфигурация для нескольких баз данных Cloud Firestore

Когда вы запустите firebase init, в файле firebase.json будет один ключ firestore, соответствующий базе данных проекта по умолчанию, как показано в примере выше.

Если в вашем проекте несколько баз данных Cloud Firestore, измените файл firebase.json, чтобы связать разные файлы источников индексов Cloud Firestore Security Rules и баз данных с каждой базой данных. Измените файл, добавив массив JSON с одной записью для каждой базы данных.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Cloud Functions файлов, которые нужно игнорировать при развертывании

Во время развертывания функции CLI автоматически указывает список файлов в каталоге functions, которые нужно игнорировать. Это позволяет избежать развертывания на сервере лишних файлов, которые могут увеличить размер данных.

Список файлов, которые игнорируются по умолчанию, в формате JSON:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Если вы добавите собственные значения для ignore в firebase.json, убедитесь, что список файлов, приведенный выше, сохранен или добавлен.

Как управлять псевдонимами проектов

С одним каталогом проекта можно связать несколько проектов Firebase. Например, вы можете использовать один проект Firebase для подготовки, а другой – для выпуска. Используя разные среды проекта, вы можете проверять изменения перед развертыванием в рабочей среде. Команда firebase use позволяет переключаться между псевдонимами, а также создавать новые.

Как добавить псевдоним проекта

Когда вы выбираете проект Firebase во время инициализации проекта, проекту автоматически присваивается псевдоним default. Однако, чтобы разрешить выполнение команд, относящихся к проекту, в другом проекте Firebase, но при этом использовать тот же каталог проекта, выполните следующую команду из каталога проекта:

firebase use --add

Эта команда предложит вам выбрать другой проект Firebase и назначить его в качестве псевдонима. Назначения псевдонимов записываются в файл .firebaserc в каталоге проекта.

Как использовать псевдонимы проектов

Чтобы использовать назначенные псевдонимы проектов Firebase, выполните любую из следующих команд из каталога проекта.

Команда Описание
firebase use Как посмотреть список заданных псевдонимов для каталога проекта
firebase use \
PROJECT_ID|ALIAS
Все команды будут выполняться в указанном проекте Firebase.
CLI использует этот проект как активный.
firebase use --clear Очищает активный проект.

Выполните команду firebase use PROJECT_ID|ALIAS, чтобы задать новый активный проект, прежде чем выполнять другие команды CLI.

firebase use \
--unalias PROJECT_ALIAS
Удаляет псевдоним из каталога проекта.

Вы можете переопределить активный проект, передав флаг --project с любой командой CLI. Например, вы можете настроить интерфейс командной строки для работы с проектом Firebase, которому присвоен псевдоним staging. Если вы хотите выполнить одну команду для проекта Firebase, которому присвоен псевдоним prod, введите, например, firebase deploy --project=prod.

Система контроля версий и псевдонимы проектов

Как правило, файл .firebaserc следует добавить в систему контроля версий, чтобы команда могла использовать псевдонимы проекта. Однако для проектов с открытым исходным кодом или стартовых шаблонов обычно не следует регистрировать файл .firebaserc.

Если у вас есть проект для разработки, который предназначен только для вашего использования, вы можете либо передавать флаг --project с каждой командой, либо выполнить команду firebase use PROJECT_ID без назначения псевдонима проекту Firebase.

Как разместить и протестировать проект Firebase локально

Вы можете просматривать и тестировать проект Firebase на локально размещенных URL, прежде чем развертывать его в рабочей среде. Если вы хотите протестировать только определенные функции, вы можете использовать список, разделенный запятыми, в флаге команды firebase serve.

Выполните следующую команду в корневом каталоге локального проекта, если вы хотите:

  • Посмотреть статический контент приложения, размещенного на платформе Firebase.
  • Используйте Cloud Functions, чтобы создавать динамический контент для Firebase Hosting, и хотите использовать рабочие (развернутые) HTTP-функции для эмуляции Hosting на локальном URL.
firebase serve --only hosting

Эмулируйте проект с помощью локальных HTTP-функций

Чтобы эмулировать проект с помощью HTTP-функций local, выполните любую из следующих команд в каталоге проекта.

  • Чтобы эмулировать функции HTTP и хостинг для тестирования на локальных URL, используйте одну из следующих команд:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Чтобы эмулировать только функции HTTP, используйте следующую команду:

    firebase serve --only functions

Проверьте на других локальных устройствах

По умолчанию firebase serve отвечает только на запросы от localhost. Это означает, что вы сможете получить доступ к размещенному контенту через веб-браузер на компьютере, но не на других устройствах в сети. Если вы хотите протестировать сайт на других локальных устройствах, используйте флаг --host, как показано ниже:

firebase serve --host 0.0.0.0  // accepts requests to any host

Как развернуть проект Firebase

Интерфейс командной строки Firebase управляет развертыванием кода и ресурсов в проекте Firebase, в том числе:

  • Новые релизы на сайтах Firebase Hosting
  • Новый, обновленный или существующий Cloud Functions for Firebase
  • Новые или обновленные схемы и коннекторы для Firebase SQL Connect
  • Security Rules (Firebase Realtime Database)
  • Security Rules (Cloud Storage for Firebase)
  • Security Rules (Cloud Firestore)
  • Индексы для Cloud Firestore
  • Конфигурация для Authentication

Чтобы развернуть проект Firebase, выполните следующую команду в каталоге проекта:

firebase deploy

Вы можете добавить комментарий к каждому развертыванию. Этот комментарий будет показываться вместе с другой информацией о развертывании на странице Firebase Hosting проекта. Пример:

firebase deploy -m "Deploying the best new feature ever."

При использовании команды firebase deploy учитывайте следующее:

  • Чтобы развернуть ресурсы из каталога проекта, в нем должен быть файл firebase.json. Этот файл автоматически создается командой firebase init.

  • По умолчанию firebase deploy создает релиз для всех развертываемых ресурсов в каталоге проекта. Чтобы развернуть определенные сервисы или функции Firebase, используйте частичное развертывание.

Как развернуть определенные сервисы Firebase

Если вы хотите развернуть только определенные сервисы или функции Firebase, используйте список, разделенный запятыми, в параметре команды firebase deploy. Например, следующая команда развертывает контент Firebase Hosting и Cloud Storage Security Rules:

firebase deploy --only hosting,storage

В таблице ниже перечислены сервисы и функции, доступные при частичном развертывании. Названия в флагах соответствуют ключам в файле конфигурации firebase.json.

Синтаксис флагов Развернутый сервис или функция
--only auth Настройка поставщика Authentication
--only database Firebase Realtime Database Security Rules
--only dataconnect Схемы и коннекторы Firebase SQL Connect
--only firestore Cloud Firestore Security Rules и индексы для всех настроенных баз данных.
--only functions Cloud Functions for Firebase
--only hosting Firebase Hosting язык
--only storage Cloud Storage for Firebase Security Rules

Конфликты развертывания для Security Rules

Для Firebase Realtime Database, Cloud Storage for Firebase и Cloud Firestore можно задать Security Rules в локальном каталоге проекта или в консоли Firebase.

Чтобы избежать конфликтов при развертывании, можно использовать частичное развертывание и определять Security Rules только в консоли Firebase.

Как настроить задачи на основе скриптов до и после развертывания

Вы можете подключить скрипты оболочки к команде firebase deploy, чтобы выполнять задачи до или после развертывания. Например, скрипт, выполняемый до развертывания, может транспилировать код TypeScript в JavaScript, а обработчик, выполняемый после развертывания, может отправлять администраторам уведомления о развертывании нового контента сайта в Firebase Hosting.

Чтобы настроить хуки predeploy или postdeploy, добавьте скрипты bash в файл конфигурации firebase.json. Вы можете определить короткие скрипты непосредственно в файле firebase.json или указать ссылки на другие файлы в каталоге проекта.

Например, следующий скрипт представляет собой выражение firebase.json для задачи postdeploy, которая отправляет сообщение Slack после успешного развертывания в Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

Файл скрипта messageSlack.sh находится в каталоге проекта и выглядит следующим образом:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Вы можете настроить хуки predeploy и postdeploy для любого из развертываемых объектов. Обратите внимание, что при выполнении команды firebase deploy запускаются все задачи, определенные в файле firebase.json для этапов до и после развертывания. Чтобы выполнить только те задачи, которые связаны с определенным сервисом Firebase, используйте команды частичного развертывания.

Оба приема predeploy и postdeploy выводят стандартные выходные данные и потоки ошибок скриптов в терминал. В случае сбоя:

  • Если хук не будет выполнен должным образом, развертывание будет отменено.
  • Если по какой-либо причине развертывание выполнить не удалось, хуки postdeploy не запускаются.

Переменные среды

В скриптах, выполняемых в хуках predeploy и postdeploy, доступны следующие переменные среды:

  • $GCLOUD_PROJECT – идентификатор активного проекта.
  • $PROJECT_DIR – корневой каталог, содержащий файл firebase.json.
  • $RESOURCE_DIR: (только для скриптов hosting и functions) местоположение каталога, содержащего ресурсы Hosting или Cloud Functions, которые нужно развернуть.

Квоты на развертывание

Возможно (хотя и маловероятно), что вы превысите квоту, ограничивающую скорость или объем операций развертывания Firebase. Например, при развертывании большого количества функций может появиться сообщение об ошибке HTTP 429 Quota. Чтобы избежать таких проблем, попробуйте частичное развертывание.

Как выполнить откат развертывания

Вы можете откатить развертывание Firebase Hosting на странице Firebase Hosting проекта, выбрав действие Откатить для нужной версии.

Невозможно откатить выпуски Security Rules для Firebase Realtime Database, Cloud Storage for Firebase или Cloud Firestore.

Справочник по командам

Команды администрирования CLI

Команда Описание
help Показывает справочную информацию о CLI или определенных командах.
init Связывает и настраивает новый проект Firebase в текущем каталоге. Эта команда создаст файл конфигурации firebase.json в текущем каталоге.
login Выполняет аутентификацию CLI с помощью аккаунта Google. Требуется доступ к браузеру.
Чтобы войти в CLI в удаленных средах, где нет доступа к localhost, используйте флаг --no-localhost.
login:ci Создает токен аутентификации для использования в неинтерактивных средах.
login:add Войти в дополнительный аккаунт Google.
login:list Список всех аккаунтов Google, в которые выполнен вход.
login:use Задает активный аккаунт Google.
logout Выход из аккаунта Google в интерфейсе командной строки.
open Открывает браузер с ресурсами проекта.
projects:list Список всех проектов Firebase, к которым у вас есть доступ.
use Устанавливает активный проект Firebase для интерфейса командной строки.
Управляет псевдонимами проектов.

Команды для управления проектами

Команда Описание
Управление проектами Firebase
projects:addfirebase Добавляет ресурсы Firebase и включает сервисы Firebase в существующем проекте Google Cloud.
projects:create Создает новый проект Google Cloud, а затем добавляет в него ресурсы Firebase.
projects:list Список всех проектов Firebase, к которым у вас есть доступ.
Управление приложениями Firebase (iOS, Android, веб-версия)
apps:create Создает новое приложение Firebase в активном проекте.
apps:list Список зарегистрированных приложений Firebase в активном проекте.
apps:sdkconfig Выводит конфигурацию Firebase для приложения Firebase.
setup:web Устаревший. Вместо этого используйте apps:sdkconfig и укажите web в качестве аргумента платформы.
Выводит конфигурацию Firebase для веб-приложения Firebase.
Управление хешами сертификатов SHA (только для Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Добавляет указанный хеш сертификата SHA в указанное приложение Firebase для Android.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Удаляет указанный хеш сертификата SHA из указанного приложения Firebase для Android.
apps:android:sha:list \
FIREBASE_APP_ID
Список хешей сертификатов SHA для указанного приложения Firebase для Android.

Развертывание и локальная разработка

Эти команды позволяют развертывать сайт Firebase Hosting и взаимодействовать с ним.

Команда Описание
развернуть Развертывает код и объекты из каталога проекта в активный проект. Для Firebase Hosting требуется файл конфигурации firebase.json.
Показывать Запускает локальный веб-сервер с конфигурацией Firebase Hosting. Для Firebase Hosting требуется файл конфигурации firebase.json.

команды App Distribution;

Команда Описание
appdistribution:distribute \
--app FIREBASE_APP_ID
Сборка становится доступна тестировщикам.
appdistribution:testers:add Добавляет тестировщиков в проект.
appdistribution:testers:remove Удаляет тестировщиков из проекта.
appdistribution:testers:list Список тестировщиков проекта.
appdistribution:groups:create Создает группу тестировщиков.
appdistribution:groups:delete Удаляет группу тестировщиков.
appdistribution:groups:list Список групп тестировщиков в проекте.

команды App Hosting;

Команда Описание
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Создает коллекцию управляемых ресурсов, связанных с единой базой кода, которая составляет серверную часть App Hosting. При необходимости укажите существующее веб-приложение Firebase по его идентификатору.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Получает подробную информацию о внутреннем сервисе, в том числе его общедоступный URL.
apphosting:backends:list \
--project PROJECT_ID
Получает список всех активных внутренних сервисов, связанных с проектом.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Удаляет серверную часть из проекта.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Экспортирует секреты для использования при эмуляции приложений.
По умолчанию используются секреты, хранящиеся в apphosting.yaml, или --secrets, чтобы указать любую среду, для которой есть соответствующий файл apphosting.ENVIRONMENT_NAME.yaml.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Создает развертывание, запускаемое вручную.
При необходимости укажите последний коммит в ветке или определенный коммит. Если варианты не указаны, будет предложено выбрать ветку из списка.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Хранит секретные материалы в Secret Manager.
При необходимости укажите путь, по которому можно прочитать секретные данные. Установите значение _, чтобы считывать секретные данные со стандартного входа.
apphosting:secrets:grantaccess KEY \
--backend BACKEND_ID \
--emails EMAILS \
--project PROJECT_ID \
--location REGION
Предоставляет разрешения на доступ к указанным секретам сервисным аккаунтам, пользователям или группам, чтобы они могли получить доступ к App Hosting во время сборки или выполнения. Можно указать несколько секретов через запятую.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Получает метаданные секрета и его версий.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Получает доступ к значению секрета, используя сам секрет и его версию. По умолчанию используется последняя версия.

команды Authentication (управление пользователями);

Команда Описание
auth:export Экспортирует аккаунты пользователей активного проекта в файл JSON или CSV. Подробную информацию можно найти на странице auth:import и auth:export.
auth:import Импортирует аккаунты пользователей из JSON- или CSV-файла в активный проект. Подробнее об импорте и экспорте данных аутентификации…

команды Cloud Firestore;

Команда Описание
firestore:locations

Посмотреть список доступных местоположений для базы данных Cloud Firestore.

firestore:databases:create DATABASE_ID

Создайте экземпляр базы данных в собственном режиме в проекте Firebase.

Команда принимает следующие флаги:

  • --location <название региона>, чтобы указать местоположение развертывания базы данных. Чтобы посмотреть список доступных местоположений, выполните команду firebase firestore:locations. Обязательный параметр.
  • --delete-protection <deleteProtectionState> чтобы разрешить или запретить удаление указанной базы данных. Допустимые значения: ENABLED и DISABLED. Значение по умолчанию – DISABLED.
  • --point-in-time-recovery <PITRState>, чтобы указать, включено ли восстановление на определенный момент времени. Допустимые значения: ENABLED (да) и DISABLED (нет). Значение по умолчанию – DISABLED. Необязательное поле.
  • --edition <edition>, чтобы указать уровень базы данных. Для корпоративных функций задайте значение enterprise.
  • --firestore-data-access <ENABLED|DISABLED> (только для Enterprise) – чтобы управлять доступностью API Firestore. Значение по умолчанию – ENABLED.
  • --mongodb-compatible-data-access <ENABLED|DISABLED> (только для Enterprise) – позволяет управлять доступностью API, совместимого с MongoDB. Значение по умолчанию – DISABLED.
  • --realtime-updates <ENABLED|DISABLED> (только для организаций) – включает или отключает функцию "Смотреть" (в реальном времени). Требуется, чтобы --firestore-data-access было ENABLED. Значение по умолчанию – ENABLED.
firestore:databases:list

Как посмотреть список баз данных в проекте Firebase

firestore:databases:get DATABASE_ID

Получите конфигурацию базы данных для указанной базы данных в проекте Firebase.

Для баз данных Enterprise в выходных данных указываются статусы Edition, Firestore Data Access, MongoDB Compatible Data Access и Realtime Updates.

firestore:databases:update DATABASE_ID

Обновляет конфигурацию указанной базы данных в проекте Firebase.

Выберите хотя бы одну пометку. Команда принимает следующие флаги:

  • --delete-protection <deleteProtectionState> чтобы разрешить или запретить удаление указанной базы данных. Допустимые значения: ENABLED и DISABLED. Значение по умолчанию – DISABLED.
  • --point-in-time-recovery <PITRState>, чтобы указать, включено ли восстановление на определенный момент времени. Допустимые значения: ENABLED (да) и DISABLED (нет). Значение по умолчанию – DISABLED. Необязательное поле.
  • --firestore-data-access <ENABLED|DISABLED> (только для Enterprise) – чтобы управлять доступностью API Firestore.
  • --mongodb-compatible-data-access <ENABLED|DISABLED> (только для Enterprise) – позволяет управлять доступностью API, совместимого с MongoDB.
  • --realtime-updates <ENABLED|DISABLED> (только для организаций) – включает или отключает функцию "Смотреть" (в реальном времени). Требуется, чтобы значение --firestore-data-access было равно ENABLED.
firestore:databases:delete DATABASE_ID

Удалить базу данных в проекте Firebase.

firestore:indexes

Как посмотреть список индексов для базы данных в проекте Firebase

Команда принимает следующий флаг:

  • --database DATABASE_ID, чтобы указать название базы данных, для которой нужно получить список индексов. Если не указано, индексы будут перечислены для базы данных по умолчанию.
firestore:delete

Удаляет документы из базы данных активного проекта. С помощью интерфейса командной строки можно рекурсивно удалить все документы в коллекции.

Обратите внимание, что при удалении данных Cloud Firestore с помощью интерфейса командной строки взимается плата за чтение и удаление. Подробнее о счетах и платежах Cloud Firestore…

Команда принимает следующий флаг:

  • --database DATABASE_ID чтобы указать название базы данных, из которой удаляются документы. Если не указано, документы удаляются из базы данных по умолчанию. Необязательное поле.

команды Cloud Functions for Firebase;

Команда Описание
functions:config:clone Устарело.
Копирует среду другого проекта в активный проект Firebase.
functions:config:export Экспортирует конфигурацию времени выполнения активного проекта в Google Cloud Secret Manager.
functions:config:get Устаревший.
Получает существующие значения конфигурации Cloud Functions активного проекта.
functions:config:set Устарело.
Хранит значения конфигурации времени выполнения Cloud Functions активного проекта.
functions:config:unset Устаревший.
Удаляет значения из конфигурации времени выполнения активного проекта.
functions:delete \
FUNCTION_NAME
Удаляет указанную функцию.
functions:list Список развернутых функций.
functions:log Считывает журналы из развернутого Cloud Functions.
functions:secrets:access \
SECRET_NAME
Получает доступ к значению секрета, используя сам секрет и его версию.
functions:secrets:destroy \
SECRET_NAME
Удаляет секрет.
functions:secrets:get \
SECRET_NAME
Получает метаданные секрета и его версий.
functions:secrets:prune Удаляет неиспользуемые секреты.
functions:secrets:set \
SECRET_NAME
Создает или обновляет секрет.
functions:shell Запускает локальную интерактивную оболочку для тестирования функций.

Подробнее о настройке среды…

команды Crashlytics;

Команда Описание
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Создает уникальный идентификатор файла сопоставления в указанном файле ресурсов Android (XML).
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Загружает файл сопоставления, совместимый с Proguard (TXT), для этого приложения и связывает его с идентификатором файла сопоставления, объявленным в указанном файле ресурсов Android (XML).
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Создает файл символов, совместимый с Crashlytics, для сбоев нативных библиотек в Android и загружает его на серверы Firebase.

команды SQL Connect;

Подробную информацию об этих командах и примерах их использования можно найти в справочном руководстве по CLI SQL Connect.

Команда Описание
dataconnect:services:list Содержит список всех развернутых сервисов SQL Connect в вашем проекте Firebase.
dataconnect:sql:diff \
SERVICE_ID
Для указанного сервиса отображает различия между локальной схемой SQL Connect и схемой базы данных Cloud SQL.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Переносит схему базы данных Cloud SQL, чтобы она соответствовала локальной схеме SQL Connect.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Предоставляет роль SQL указанному пользователю или сервисному аккаунту.
Для флага --role роль SQL, которую нужно предоставить, может быть одной из следующих: owner, writer или reader.
Для флага --email укажите адрес электронной почты пользователя или сервисного аккаунта, которому нужно предоставить роль.
dataconnect:sdk:generate Создает типизированные SDK для ваших коннекторов SQL Connect.

команды Extensions;

Команда Описание
ext Показывает информацию о том, как использовать команды Firebase Extensions.
Список экземпляров расширений, установленных в активном проекте.
ext:configure \
EXTENSION_INSTANCE_ID
Позволяет изменить значения параметров экземпляра расширения в манифесте расширения.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Выводит подробную информацию о расширении.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Добавляет новый экземпляр расширения в манифест расширения.
ext:sdk:install Устанавливает SDK для определения расширений в функциях.
ext:list Перечисляет все экземпляры расширений, установленные в проекте Firebase.
Выводит идентификатор экземпляра для каждого расширения.
ext:uninstall \
EXTENSION_INSTANCE_ID
Удаляет экземпляр расширения из манифеста расширения.
ext:update \
EXTENSION_INSTANCE_ID
Обновляет экземпляр расширения до последней версии, указанной в манифесте расширения.
ext:export Экспортирует все установленные экземпляры расширений из вашего проекта в манифест расширения.

Команды издателя Extensions

Команда Описание
ext:dev:init Инициализирует базовый код для нового расширения в текущем каталоге.
ext:dev:list \
PUBLISHER_ID
Выводит список всех расширений, загруженных издателем.
ext:dev:register Регистрирует проект Firebase как издательский проект расширений.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Устаревшие версии расширений, соответствующие предикату версии.
Предикат версии может быть одной версией (например, 1.0.0) или диапазоном версий (например, >1.0.0).
Если предикат версии не указан, устаревшими считаются все версии расширения.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Отменяет устаревание версий расширений, соответствующих предикату версии.
Предикат версии может быть одной версией (например, 1.0.0) или диапазоном версий (например, >1.0.0).
Если предикат версии не указан, то отменяется устаревание всех версий расширения.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Загружает новую версию расширения.
ext:dev:usage \
PUBLISHER_ID
Показывает количество установок и статистику использования расширений, загруженных издателем.

команды Hosting;

Команда Описание
hosting:disable

Прекращает показ трафика Firebase Hosting для активного проекта Firebase.

После выполнения этой команды по Hosting URL вашего проекта будет показываться сообщение "Сайт не найден".

Управление сайтами Hosting
firebase hosting:sites:create \
SITE_ID

Создает новый сайт Hosting в активном проекте Firebase, используя указанный SITE_ID.

(Необязательно.) Укажите существующее веб-приложение Firebase, которое нужно связать с новым сайтом, передав следующий флаг:--app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Удаляет указанный сайт Hosting.

Перед удалением сайта в интерфейсе командной строки появится запрос подтверждения.

(Необязательно.) Чтобы пропустить запрос подтверждения, добавьте следующие флаги: -f или --force.

firebase hosting:sites:get \
SITE_ID

Получает информацию об указанном сайте Hosting.

firebase hosting:sites:list

Показывает все сайты Hosting для активного проекта Firebase.

Управление каналами предварительной версии
firebase hosting:channel:create \
CHANNEL_ID

Создает новый канал предварительной версии на сайте по умолчанию Hosting, используя указанный CHANNEL_ID

Эта команда не развертывается на канале.

firebase hosting:channel:delete \
CHANNEL_ID

Удаляет указанный канал предварительной версии.

Удалить канал сайта нельзя.

firebase hosting:channel:deploy \
CHANNEL_ID

Развертывает контент и конфигурацию Hosting на указанном канале предварительного просмотра.

Если канал предпросмотра ещё не существует, эта команда создает канал на сайте по умолчанию Hosting перед развертыванием на канале.

firebase hosting:channel:list Содержит список всех каналов (включая канал с трансляцией) на сайте default Hosting.
firebase hosting:channel:open \
CHANNEL_ID
Открывает браузер с URL указанного канала или возвращает URL, если открыть его в браузере невозможно.
Клонирование версий
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Клонирует последнюю развернутую версию из указанного исходного канала в целевой.

Эта команда также развертывается на указанном целевом канале. Если целевого канала ещё нет, эта команда создаст новый канал предварительного просмотра на целевом сайте Hosting, прежде чем развернуть на канале.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Копирует указанную версию в целевой канал.

Эта команда также развертывается на указанном целевом канале. Если целевого канала ещё нет, эта команда создаст новый канал предварительного просмотра на целевом сайте Hosting, прежде чем развернуть на канале.

VERSION_ID можно найти на панели управления Hosting консоли Firebase.

команды Realtime Database;

Обратите внимание, что вы можете создать свой первый экземпляр Realtime Database по умолчанию в консоли Firebase, используя общий рабочий процесс firebase init или специальный рабочий процесс firebase init database.

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

Команда Описание
database:get Получает данные из базы данных активного проекта и отображает их в формате JSON. Поддерживает запросы к индексированным данным.
database:instances:create Создает экземпляр базы данных с указанным названием. Принимает параметр --location для создания базы данных в указанном регионе. Названия регионов, которые можно использовать с этим вариантом, приведены в разделе Как выбрать местоположения для проекта. Если для текущего проекта нет экземпляра базы данных, вам будет предложено запустить поток firebase init, чтобы создать экземпляр.
database:instances:list Перечислите все экземпляры баз данных для этого проекта. Принимает параметр --location для получения списка баз данных в указанном регионе. Названия регионов, которые можно использовать с этим параметром, приведены в разделе Как выбрать местоположения для проекта.
database:profile Создает профиль операций в базе данных активного проекта. Подробнее о типах операций Realtime Database…
database:push Добавляет новые данные в список в указанном месте базы данных активного проекта. Получает входные данные из файла, стандартного потока ввода или аргумента командной строки.
database:remove Удаляет все данные в указанном местоположении в базе данных активного проекта.
database:set Заменяет все данные в указанном месте в базе данных активного проекта. Получает входные данные из файла, стандартного потока ввода или аргумента командной строки.
database:update Выполняет частичное обновление в указанном месте базы данных активного проекта. Получает входные данные из файла, стандартного потока ввода или аргумента командной строки.

команды Remote Config;

Подробнее об этих командах и примерах их использования рассказывается в статье Как изменять Remote Config программным способом.

Команда Описание
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Содержит список из десяти последних версий шаблона. Укажите 0, чтобы вернуть все существующие версии, или передайте параметр --limit, чтобы ограничить количество возвращаемых версий.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Получает шаблон по версии (по умолчанию используется последняя версия) и выводит группы параметров, параметры, названия условий и версию в таблицу. При необходимости вы можете записать выходные данные в указанный файл с помощью параметра -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Выполняет откат шаблона Remote Config до указанной предыдущей версии или до предыдущей версии по умолчанию (текущая версия -1). Если --force не пройдена, перед откатом выводится запрос Y/N.
remoteconfig:experiments:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Перечисляет все эксперименты Remote Config для проекта с возможностью фильтрации, указания количества экспериментов на странице (по умолчанию 10) и токена страницы в качестве начального смещения для списка.
remoteconfig:experiments:get \
EXPERIMENT_ID
Получает сведения об указанном эксперименте Remote Config.
remoteconfig:experiments:delete \
EXPERIMENT_ID
Удаляет указанный эксперимент Remote Config.
remoteconfig:rollouts:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Содержит список всех развертываний Remote Config для проекта с возможностью фильтрации, указанием количества развертываний на странице (по умолчанию 10) и токеном страницы в качестве начального смещения для списка.
remoteconfig:rollouts:get \
ROLLOUT_ID
Получает сведения о развертывании Remote Config.
remoteconfig:rollouts:delete \
ROLLOUT_ID
Удаляет указанное развертывание Remote Config.