Firebase CLI cho phép bạn quản lý các dự án Firebase trong một thư mục dự án có thể kiểm soát phiên bản và cục bộ, . Thư mục này bao gồm các dịch vụ Data Connect trong dự án, trình kết nối cho các dịch vụ đó và các tài nguyên như giản đồ, nguồn truy vấn và nguồn đột biến cho mỗi trình kết nối. CLI cũng cho phép bạn cài đặt và vận hành trình mô phỏng Firebase Data Connect. CLI là một giải pháp thay thế hiệu quả cho việc làm việc trong Firebase console.
Để biết hướng dẫn về cách cài đặt thử nghiệm CLI Firebase cho chương trình Bản dùng thử riêng tư và các lệnh CLI liên quan đến Data Connect, hãy xem tài liệu tham khảo về CLI.
Hướng dẫn tham khảo này ghi lại:
- Các mục dành riêng cho Data Connect trong tệp cấu hình dự án
firebase.json. - Data Connect cấu hình trong
dataconnect.yamlvàconnector.yaml.
Tệp cấu hình dự án Firebase
Tài liệu tham khảo về cấu hình firebase.json
Sử dụng các khoá dataconnect để định cấu hình một hoặc nhiều Data Connect
dịch vụ trong dự án.
dataconnect: {
source: string // Path to the directory containing the dataconnect.yaml service file.
}
Tài liệu tham khảo về cấu hình dataconnect.yaml
Tệp dataconnect.yaml lưu trữ thông tin cấu hình về vị trí của các nguồn giản đồ ứng dụng, nguồn trình kết nối và thông tin kết nối nguồn dữ liệu. Tệp này cũng đóng vai trò là dấu hiệu thư mục dự án cho
Firebase CLI.
Khoá schemaValidation kiểm soát mức độ xác thực giản đồ được thực hiện khi di chuyển giản đồ trong quá trình triển khai. Nếu không đặt giá trị, thì hành vi của lệnh dataconect:sql:migrate là áp dụng các thay đổi tương thích và nhắc bạn trước khi thực thi bất kỳ thay đổi nghiêm ngặt nào. Khi được đặt, hành vi sẽ như sau:
- Chế độ
STRICT. Giản đồ cơ sở dữ liệu phải khớp chính xác với giản đồ ứng dụng trước khi có thể triển khai giản đồ ứng dụng. Mọi bảng hoặc cột không được sử dụng trong giản đồ Data Connectsẽ bị xoá khỏi cơ sở dữ liệu. - Chế độ
COMPATIBLE. Giản đồ cơ sở dữ liệu phải tương thích với giản đồ ứng dụng trước khi có thể triển khai giản đồ ứng dụng; mọi thay đổi bổ sung đều được coi là không bắt buộc. Tương thích có nghĩa là quá trình di chuyển giản đồ dựa trên giản đồ ứng dụng mà bạn viết. Các phần tử trong cơ sở dữ liệu không được giản đồ ứng dụng sử dụng sẽ không bị sửa đổi. Do đó, sau khi triển khai, phần phụ trợ của bạn có thể chứa các giản đồ, bảng và cột không được sử dụng.
Giá trị cho các khoá khác trong tệp này được giải thích trong các nhận xét bên dưới.
# 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]
Tệp YAML giả định cấu trúc thư mục mặc định (nhưng có thể định cấu hình) là:
./(project root)
/dataconnect
dataconnect.yaml
/schema
*.gql
/example
connector.yaml
*.gql
Tài liệu tham khảo về cấu hình connector.yaml
Sử dụng connector.yaml để định cấu hình chế độ xác thực mặc định và các tuỳ chọn tạo 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