Referenz zur Data Connect-Konfigurationsdatei

Mit der Firebase CLI können Sie Ihre Firebase-Projekte in einem lokalen, versionskontrollierbaren Projektverzeichnis verwalten. Dazu gehören Data Connect-Dienste in Ihren Projekten, Connectors für diese Dienste und Ressourcen wie Schema-, Abfrage- und Mutationsquellen für jeden Connector. Mit der CLI können Sie auch den Firebase Data Connect-Emulator installieren und ausführen. Die Befehlszeile ist eine effiziente Alternative zur Arbeit in der Firebase-Konsole.

Eine Anleitung zum Installieren des Firebase-CLI-Experiments für das Private Preview-Programm und zu Data Connect-bezogenen CLI-Befehlen finden Sie in der CLI-Referenz.

In diesem Referenzleitfaden wird Folgendes dokumentiert:

  • Data Connect-spezifische Einträge in der firebase.json-Projektkonfigurationsdatei.
  • Data Connect-Konfigurationen in dataconnect.yaml und connector.yaml.

Firebase-Projektkonfigurationsdateien

firebase.json-Konfigurationsreferenz

Verwenden Sie die dataconnect-Schlüssel, um einen oder mehrere Data Connect-Dienste in Ihrem Projekt zu konfigurieren.

dataconnect: {
   source: string // Path to the directory containing the dataconnect.yaml service file.
}

Konfigurationsreferenz für dataconnect.yaml

In der Datei dataconnect.yaml werden Konfigurationsinformationen zu den Speicherorten von Anwendungs-Schemaquellen, Connector-Quellen und Informationen zur Datenquellenverbindung gespeichert. Die Datei dient auch als Kennzeichen für das Projektverzeichnis für die Firebase-Befehlszeile.

Mit dem Schlüssel schemaValidation wird der Grad der Schemavalidierung gesteuert, die bei der Migration von Schemas während der Bereitstellung durchgeführt wird. Wenn kein Wert festgelegt ist, werden mit dem Befehl dataconect:sql:migrate kompatible Änderungen angewendet und Sie werden vor der Ausführung strenger Änderungen aufgefordert, diese zu bestätigen. Wenn diese Option festgelegt ist, verhält sich das System so:

  • STRICT-Mode. Das Datenbankschema muss genau mit dem Anwendungsschema übereinstimmen, bevor das Anwendungsschema bereitgestellt werden kann. Alle Tabellen oder Spalten, die nicht in Ihrem Data Connect-Schema verwendet werden, werden aus der Datenbank gelöscht.
  • COMPATIBLE-Mode. Das Datenbankschema muss mit dem Anwendungsschema kompatibel sein, bevor das Anwendungsschema bereitgestellt werden kann. Alle zusätzlichen Änderungen sind optional. „Kompatibel“ bedeutet, dass Schemamigrationen auf dem von Ihnen geschriebenen Anwendungsschema basieren. Elemente in Ihrer Datenbank, die nicht von Ihrem Anwendungsschema verwendet werden, bleiben unverändert. Daher kann Ihr Backend nach der Bereitstellung ungenutzte Schemas, Tabellen und Spalten enthalten.

Werte für andere Schlüssel in dieser Datei werden in den Kommentaren unten erläutert.

# 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]

Die YAML-Datei geht von einer Standardverzeichnisstruktur aus, die jedoch konfiguriert werden kann:

./(project root)
   /dataconnect
      dataconnect.yaml
      /schema
        *.gql
      /example
        connector.yaml
        *.gql

Konfigurationsreferenz für connector.yaml

Verwenden Sie connector.yaml, um den Standardauthentifizierungsmodus und die Optionen für die SDK-Generierung zu konfigurieren.

# 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