Riferimento al file di configurazione di Data Connect

L'interfaccia a riga di comando Firebase ti consente di gestire i progetti Firebase in una directory di progetto locale, con controllo delle versioni. Sono inclusi i Data Connect servizi nei tuoi progetti, i connettori per questi servizi e le risorse come schemi, query e origini di mutazioni per ogni connettore. L'interfaccia a riga di comando ti consente anche di installare e utilizzare l'emulatore Firebase Data Connect. L'interfaccia a riga di comando è un' alternativa efficiente all'utilizzo della Firebase console.

Per istruzioni sull'installazione dell'esperimento dell'interfaccia a riga di comando Firebase per il programma di anteprima privata e sui comandi dell'interfaccia a riga di comando correlati a Data Connect, consulta il riferimento all'interfaccia a riga di comando .

Questa guida di riferimento documenta:

  • Voci specifiche di Data Connect nel file di configurazione del progetto firebase.json.
  • Data Connect configurazioni in dataconnect.yaml e connector.yaml.

File di configurazione del progetto Firebase

Riferimento alla configurazione di firebase.json

Utilizza le chiavi dataconnect per configurare uno o più Data Connect servizi nel tuo progetto.

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

Riferimento alla configurazione di dataconnect.yaml

Il file dataconnect.yaml memorizza le informazioni di configurazione relative alle posizioni delle origini degli schemi delle applicazioni, delle origini dei connettori e delle informazioni di connessione all'origine dati. Il file funge anche da indicatore della directory del progetto per la Firebase CLI.

La chiave schemaValidation controlla il livello di convalida dello schema eseguito durante la migrazione degli schemi durante il deployment. Se non è impostato alcun valore, il comportamento del comando dataconect:sql:migrate consiste nell'applicare le modifiche compatibili e richiedere conferma prima di eseguire modifiche rigorose. Quando è impostato, il comportamento è il seguente:

  • Modalità STRICT. Lo schema del database deve corrispondere esattamente allo schema dell'applicazione prima che quest'ultimo possa essere sottoposto a deployment. Tutte le tabelle o le colonne non utilizzate nello schema Data Connectverranno eliminate dal database.
  • Modalità COMPATIBLE. Lo schema del database deve essere compatibile con lo schema dell'applicazione prima che quest'ultimo possa essere sottoposto a deployment; eventuali modifiche aggiuntive sono considerate facoltative. Compatibile significa che le migrazioni dello schema si basano sullo schema dell'applicazione che scrivi. Gli elementi del database non utilizzati dallo schema dell'applicazione rimangono invariati. Di conseguenza, dopo il deployment, il backend potrebbe contenere schemi, tabelle e colonne inutilizzati.

I valori delle altre chiavi in questo file sono spiegati nei commenti riportati di seguito.

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

Il file YAML presuppone una struttura di directory predefinita (ma configurabile) di:

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

Riferimento alla configurazione di connector.yaml

Utilizza connector.yaml per configurare la modalità di autenticazione predefinita e le opzioni di generazione dell'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