Интерфейс командной строки Firebase позволяет управлять проектами Firebase в локальном каталоге проекта с возможностью контроля версий. Это включает в себя сервисы Data Connect в ваших проектах, коннекторы для этих сервисов и ресурсы, такие как схемы, запросы и источники мутаций для каждого коннектора. Интерфейс командной строки также позволяет устанавливать и запускать эмулятор Firebase Data Connect . Интерфейс командной строки является эффективной альтернативой работе в консоли Firebase .
Инструкции по установке экспериментального модуля Firebase CLI для программы Private Preview, а также по командам CLI, связанным с Data Connect , см. в справочнике CLI .
Данное справочное руководство содержит следующие документы:
- Записи, специфичные для Data Connect в файле конфигурации проекта
firebase.json. - Настройки Data Connect находятся в
dataconnect.yamlиconnector.yaml.
Файлы конфигурации проекта Firebase
Справочник по конфигурации firebase.json
Используйте ключи dataconnect для настройки одной или нескольких служб Data Connect в вашем проекте.
dataconnect: {
source: string // Path to the directory containing the dataconnect.yaml service file.
}
Справочник по конфигурации dataconnect.yaml
Файл dataconnect.yaml хранит информацию о конфигурации, содержащую сведения о расположении источников схем приложений, источников коннекторов и информации о подключении к источникам данных. Этот файл также служит идентификатором каталога проекта для Firebase CLI.
Ключ schemaValidation управляет уровнем проверки схемы, выполняемой при миграции схем во время развертывания. Если значение не задано, команда dataconect:sql:migrate будет применять совместимые изменения и запрашивать подтверждение перед выполнением каких-либо строгих изменений. Если значение задано, поведение будет следующим:
-
STRICTрежим. Схема базы данных должна точно соответствовать схеме приложения, прежде чем схема приложения будет развернута. Любые таблицы или столбцы, не используемые в вашей схеме Data Connect будут удалены из базы данных. - Режим
COMPATIBLE. Схема базы данных должна быть совместима со схемой приложения до развертывания схемы приложения; любые дополнительные изменения считаются необязательными. Совместимость означает, что миграции схемы основаны на схеме приложения, которую вы создаете. Элементы в вашей базе данных, которые не используются схемой приложения, остаются неизмененными. Поэтому после развертывания ваш бэкэнд может содержать неиспользуемые схемы, таблицы и столбцы.
Значения для других ключей в этом файле пояснены в комментариях ниже.
# The top-level Firebase Data Connect YAML file.
# The Firebase Data Connect API version to target.
# Optional. Defaults to the latest version.
specVersion: string
# The ID of the Firebase Data Connect service resource.
# Required.
serviceId: string
# The location of the Firebase Data Connect service.
# Required.
location: string
# Required.
schema:
# Relative path to directory for schema definitions.
# Recursively loads all .gql files in this directory.
# Optional. If not present, defaults to ./schema.
source: string
# Datasource connection information.
# Required.
datasource:
# Required.
postgresql:
# The name of the PostgreSQL database.
# Required.
database: string
cloudSql:
# The ID of the CloudSQL instance resource.
# Required.
instanceId: string
# Schema validation mode for schema migrations.
# Defaults to unspecified/commented out, meaning you are prompted to
# review all changes during migration.
# If desired, uncomment and indicate one of "STRICT" or "COMPATIBLE".
schemaValidation: string
# Required.
# Relative paths to directories for connector definitions.
# Recursively loads all .gql files in the listed directories.
# All directories specified MUST contain a connector.yaml file.
connectorDirs: [string]
В YAML-файле предполагается следующая структура каталогов по умолчанию (но с возможностью настройки):
./(project root)
/dataconnect
dataconnect.yaml
/schema
*.gql
/example
connector.yaml
*.gql
Справочник по конфигурации connector.yaml
Используйте connector.yaml для настройки режима аутентификации по умолчанию и параметров генерации SDK.
# The connector-level YAML file.
# Required. The connector name of the Firebase Data Connect connector resource.
connectorId: string
# Optional. If not specified, no generated libraries (i.e. type-safe SDKs) will be generated.
generate:
# Optional.
javascriptSdk:
# Path to the directory that will be updated with the latest generated
# web TypeScript SDK.
# Required.
- outputDir: string
# Name of the Javascript package to be created.
# Required. Recommend @dataconnect/generated
- package: string
# Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
# Optional. If not provided, the package will not be auto-installed for you.
- packageJsonDir: string
# Enable React framework bindings.
# Optional. Default to false.
- react: Boolean
# Enable Angular framework bindings.
# Optional. Default to false.
- angular: Boolean
# Optional.
dartSdk:
# Path to the directory that will be updated with the latest generated
# Flutter Dart SDK.
# Required.
- outputDir: string
# Name of the dart package to be created.
# Required. Recommend dataconnect_generated
- package: string
# Optional.
kotlinSdk:
# Path to the directory that will be updated with the latest generated
# Android SDK.
# Required.
outputDir: string
# Name of the package to be created.
# Required.
package: string
# Optional.
adminNodeSdk:
# Path to the directory that will be updated with the latest generated
# Node Admin SDK.
# Required.
outputDir: string
# Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
# Optional. If not provided, the package will not be auto-installed for you.
packageJsonDir: string
# Name of the package to be created (for example: @firebasegen-admin/generated).
# Required.
package: string
# Optional.
swiftSdk:
# Path to the directory that will be updated with the latest generated
# iOS Swift SDK.
# Required.
- outputDir: string
# Name of the dart package to be created.
# Required. Recommend dataconnect_generated
- package: string