Firebase CLI — это инструмент, который позволяет вам управлять продуктами и сервисами Firebase и настраивать их из командной строки.
Интерфейс командной строки предоставляет команды, которые можно использовать для выполнения различных задач Data Connect , таких как создание нового проекта Data Connect , инициализация соответствующего локального рабочего каталога, настройка эмулятора Data Connect , составление списка ресурсов Data Connect , создание клиентских SDK и многое другое.
Команды настройки
Добавьте Data Connect в проект Firebase
инициализация Firebase
Используйте firebase init
, чтобы настроить новую конфигурацию локального проекта. Этот рабочий процесс создает или обновляет файлы конфигурации Firebase в вашем каталоге.
firebase init
Процесс firebase init
поможет вам настроить службу и базу данных, а также (при необходимости) установить эмулятор Data Connect и настроить сгенерированные SDK.
Настройка сервиса и базы данных
Если вы выберете dataconnect
для настройки продукта, интерфейс командной строки предложит вам указать новое имя и местоположение службы, а также указать, следует ли связать существующий экземпляр Cloud SQL для PostgreSQL или создать новый экземпляр.
Если связан существующий экземпляр, CLI проверяет наличие совместимых настроек, таких как аутентификация IAM и общедоступные IP-адреса.
Настройка Local Emulator Suite
Поток CLI предлагает настроить эмуляторы, включая эмулятор Data Connect .
Команды эмулятора Data Connect
Запустите эмулятор Data Connect .
эмуляторы: пуск/exec
firebase emulators:start/exec
Используйте версию эмулятора Data Connect из Local Emulator Suite в интерактивном режиме с start
или неинтерактивном режиме на основе сценария с помощью exec
.
Команды управления схемой и соединителями
В этом разделе содержится справочная информация CLI для команд, которые вы используете для управления схемами и соединителями.
Варианты использования и рекомендуемые методы, связанные с этими командами, см. в руководстве по управлению схемой и соединителем .
Развертывание ресурсов схемы и соединителя
развертывать
firebase deploy
Эта команда развертывает ресурсы для служб Data Connect, индексированные в firebase.json . При необходимости выполняется миграция схемы .
Команда | Описание | |
---|---|---|
развертывание огневой базы | Флаг | Описание |
--только подключение к данным | Разверните схемы и соединители для всех служб Data Connect для этого проекта, но не развертывайте другие ресурсы продукта Firebase. | |
--only dataconnect:serviceId | Разверните схему и соединители для указанной службы подключения к данным. | |
--only dataconnect:serviceId:connectorId | Разверните один соединитель для указанной службы подключения к данным. | |
--only dataconnect:serviceId:schema | Разверните схему для указанной службы подключения к данным. |
С помощью флагов –-only
вы можете передавать значения, разделенные запятыми, для развертывания любого подмножества ресурсов, которое вы хотите.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Получение списка служб, схем и соединителей Data Connect
dataconnect:services:list
firebase dataconnect:services:list
Эта команда выводит основную информацию о службах, схемах и соединителях, развернутых в проекте.
Сравнение и миграция схем SQL
dataconnect:sql:diff
firebase dataconnect:sql:diff
Эта команда сравнивает локальную схему сервиса с текущей схемой соответствующей базы данных Cloud SQL. Он распечатывает команды, которые будут выполняться для переноса базы данных в новую схему.
Команда | Описание | |
---|---|---|
соединение с данными Firebase: SQL: diff | Флаг/параметр | Описание |
идентификатор службы | Укажите услугу. Если этот параметр опущен, напечатайте разницу для всех сервисов в firebase.json. |
dataconnect:sql:мигрировать
firebase dataconnect:sql:migrate
Эта команда применяет изменения локальной схемы к базе данных Cloud SQL службы.
Когда вы настраиваете новый локальный проект Data Connect с файлом dataconnect.yaml
по умолчанию, команда dataconect:sql:migrate
запрашивает все необходимые изменения, а затем запрашивает любые необязательные изменения перед выполнением изменений. . Вы можете изменить это поведение, чтобы всегда включать или игнорировать необязательные изменения, обновив конфигурацию dataconnect.yaml
, как описано в разделе «Миграция схемы в строгом или совместимом режиме».
В интерактивных средах интерфейс командной строки отображает каждый оператор SQL миграции (и указывает, является ли он разрушительным) и предлагает внести изменения, которые вы хотите применить. Передача флага --force
эквивалентна принятию всех запросов.
В неинтерактивной среде:
- без
--force
вносятся только неразрушающие изменения. Если есть деструктивные изменения, CLI прерывается без внесения изменений. - с
--force
все изменения вносятся. Если это включает в себя какие-либо деструктивные изменения, они будут распечатаны, и вам будет предложено продолжить, если не указан флаг--force
.
Команда | Описание | |
---|---|---|
Firebase dataconnect:sql:migrate | Флаг | Описание |
идентификатор службы | Перенесите базу данных для указанной службы. ServiceId выводится, если в вашем проекте есть только одна служба. | |
--сила | Автоматически принимать подсказки. |
Как и в случае с другими флагами --only
, вы можете предоставить несколько служб, разделенных запятыми.
Перенос схемы в строгий или совместимый режим.
При миграции схемы Data Connect предусмотрены два разных режима проверки схемы: строгий и совместимый . Строгая проверка режима требует, чтобы схема базы данных точно соответствовала схеме приложения, прежде чем схему приложения можно будет развернуть. Проверка режима совместимости требует, чтобы схема базы данных была совместима со схемой приложения, то есть элементы в вашей базе данных, которые не используются схемой вашего приложения, остаются неизмененными.
Эти режимы проверки схемы и рекомендации по миграции схемы описаны в руководстве по управлению схемой и соединителями.
Режим проверки определяется с помощью ключа schemaValidation
в файле dataconnect.yaml
. Если schemaValidation
не указан, интерфейс командной строки применяет совместимые изменения и выдает запрос перед выполнением каких-либо строгих изменений. См. ссылку на конфигурацию .
Команды SDK
Создание SDK
dataconnect: SDK: создать
firebase dataconnect:sdk:generate
Эта команда генерирует типизированные SDK, объявленные в Connector.yaml .
Также ознакомьтесь с руководствами по работе с веб-SDK , Android SDK и iOS SDK .
Команда | Описание | |
---|---|---|
Firebase dataconnect: SDK: генерировать | Флаг | Описание |
--смотреть | Поддерживает процесс и генерирует новые SDK всякий раз, когда вы сохраняете изменения в своей схеме и файлах соединителя GQL. Если генерация завершится неудачей, ошибки будут выведены на стандартный вывод, сгенерированный код не будет изменен, и команда продолжит выполнение. | |
--only ConnectorId:платформа | Создавайте SDK только для одной платформы и одного соединителя. |
С помощью флагов –only
вы можете передавать значения, разделенные запятыми.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Команды управления Cloud SQL
Предоставление ролей SQL для Cloud SQL
dataconnect:sql:грант
firebase dataconnect:sql:grant
Data Connect работает на основе вашего собственного экземпляра PostgreSQL, размещенного в Cloud SQL. В некоторых случаях вам может потребоваться прямой доступ к вашей базе данных, чтобы запросить или обновить данные, созданные вашими приложениями Data Connect . Для этого вам необходимо предоставить одну из ролей, определенных в этом разделе, нужному пользователю или учетной записи службы.
Подробную информацию о предоставленных ролях см. в разделе Роли пользователей PostgreSQL .
Роль | SQL-роль | Разрешения | Использование | Грантабельный |
---|---|---|---|---|
читатель | firebasereader_<db_name>_<schema_name> | Доступ только для чтения к базе данных. Может выполнять операции SELECT для всех таблиц в указанной схеме. | Идеально подходит для пользователей или служб, требующих извлечения данных, но не их изменения. | Да |
писатель | firebasewriter_<db_name>_<schema_name> | Доступ для чтения и записи в базу данных. Может выполнять операции SELECT , INSERT , UPDATE , DELETE и TRUNCATE для всех таблиц в схеме. | Подходит для пользователей или служб, которым необходимо изменять данные в базе данных. | Да |
владелец | firebaseowner_<db_name>_<schema_name> | Владелец схемы. Имеет все привилегии для всех таблиц и последовательностей в схеме. | Эта роль в сочетании с ролью IAM roles/cloudsql.client предоставляет разрешение на выполнение миграции базы данных.Например, при вызове firebase dataconnect:sql:migrate . | Да |
суперпользователь | cloudsqlsuperuser | Встроенная роль суперпользователя с полными правами доступа к базе данных. Помимо разрешений владельца, он может создавать схемы, удалять схемы, устанавливать расширения и выполнять любые другие административные задачи. Доступ к нему осуществляется через CLI, войдя в систему как «firebasesuperuser». | Требуется для установки расширений, создания исходной схемы и предоставления любых разрешенных ролей SQL другим пользователям. Если пользователю, не являющемуся администратором, необходимы привилегии суперпользователя, миграция завершится неудачно, и пользователю будет предложено попросить администратора базы данных (т. е. пользователя с roles/cloudsql.admin ) выполнить привилегированные команды SQL. | Предоставляется пользователям с roles/cloudsql.admin и не может быть предоставлено напрямую из Firebase CLI. |
Команда | Описание | |
---|---|---|
Firebase dataconnect:sql:grant | Флаг/параметр | Описание |
-R, --ролевая роль | Предоставляемая роль SQL: владелец, писатель или читатель. | |
-E, --email адрес_электронной почты | Адрес электронной почты пользователя или учетной записи службы, которой требуется предоставить роль. |
Глобальные варианты
Следующие глобальные параметры применяются ко всем командам:
-
--json
переключает вывод CLI в JSON для анализа другими инструментами. -
--noninteractive
и--interactive
переопределяют, при необходимости, автоматическое обнаружение сред без TTY.