Documentation de référence sur le fichier de configuration de Data Connect

La Firebase CLI vous permet de gérer vos projets Firebase dans un répertoire de projet local, contrôlable par version. Cela inclut les Data Connect services dans vos projets, les connecteurs pour ces services et les ressources telles que les schéma, requête et sources de mutation pour chaque connecteur. La CLI vous permet également d'installer et d'utiliser l'émulateur Firebase Data Connect. La CLI est une alternative efficace à l'utilisation de la Firebase console.

Pour obtenir des instructions sur l'installation de l'expérience CLI Firebase pour le programme Private Preview et sur les commandes CLI associées à Data Connect, consultez la documentation de référence sur la CLI.

Ce guide de référence décrit les éléments suivants :

  • Entrées spécifiques à Data Connect dans votre fichier de configuration de projet firebase.json.
  • Configurations Data Connect dans dataconnect.yaml et connector.yaml.

Fichiers de configuration de projet Firebase

Documentation de référence sur le fichier de configuration firebase.json

Utilisez les clés dataconnect pour configurer un ou plusieurs Data Connect services dans votre projet.

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

Documentation de référence sur le fichier de configuration dataconnect.yaml

Le fichier dataconnect.yaml stocke des informations de configuration sur les emplacements des sources de schéma d'application, des sources de connecteur et des informations de connexion à la source de données. Le fichier sert également d'identifiant de répertoire de projet pour la Firebase CLI.

La clé schemaValidation contrôle le niveau de validation de schéma effectué lors de la migration des schémas pendant le déploiement. Si aucune valeur n'est définie, le comportement de la commande dataconect:sql:migrate consiste à appliquer les modifications compatibles et à vous inviter à confirmer avant d'exécuter des modifications strictes. Lorsque cette option est définie, le comportement est le suivant :

  • Mode STRICT. Le schéma de la base de données doit correspondre exactement au schéma de l'application avant de pouvoir être déployé. Toutes les tables ou colonnes qui ne sont pas utilisées dans votre Data Connect schéma seront supprimées de la base de données.
  • Mode COMPATIBLE. Le schéma de la base de données doit être compatible avec le schéma de l'application avant de pouvoir être déployé. Toutes les modifications supplémentaires sont considérées comme facultatives. Compatible signifie que les migrations de schéma sont basées sur le schéma d'application que vous écrivez. Les éléments de votre base de données qui ne sont pas utilisés par votre schéma d'application ne sont pas modifiés. Par conséquent, après le déploiement, votre backend peut contenir des schémas, tables et des colonnes inutilisés.

Les valeurs des autres clés de ce fichier sont expliquées dans les commentaires ci-dessous.

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

Le fichier YAML suppose une structure de répertoire par défaut (mais configurable) :

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

Documentation de référence sur le fichier de configuration connector.yaml

Utilisez connector.yaml pour configurer le mode d'authentification par défaut et les options de génération du 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. Example: @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. Example: "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. Example: com.google.firebase.dataconnect.generated
        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: @dataconnect/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 Swift package to be created.
        # Required. Example: "FirebaseDataConnectGenerated"
        package: string