ข้อมูลอ้างอิงการกำหนดค่าและความปลอดภัย

Firebase CLI ช่วยให้คุณจัดการโปรเจ็กต์ Firebase ในไดเรกทอรีโปรเจ็กต์ที่ควบคุมเวอร์ชันได้แบบในเครื่อง ซึ่งรวมถึงData Connectบริการในโปรเจ็กต์ของคุณ ตัวเชื่อมต่อสําหรับบริการเหล่านั้น และทรัพยากรต่างๆ เช่น สคีมา คําค้นหา และแหล่งที่มาของการเปลี่ยนรูปแบบสําหรับตัวเชื่อมต่อแต่ละรายการ นอกจากนี้ CLI ยังให้คุณติดตั้งและใช้งานโปรแกรมจำลอง Firebase Data Connect ได้ด้วย CLI เป็นทางเลือกที่มีประสิทธิภาพในการทำงานในคอนโซล Firebase

ดูวิธีการติดตั้งการทดสอบ Firebase CLI สำหรับโปรแกรมการทดลองใช้แบบส่วนตัวและคำสั่ง CLI ที่เกี่ยวข้องกับ Data Connect ได้ที่ข้อมูลอ้างอิง CLI

คู่มืออ้างอิงนี้แสดงข้อมูลต่อไปนี้

  • รายการที่เจาะจง Data Connect ในไฟล์การกำหนดค่าโปรเจ็กต์ firebase.json
  • การกําหนดค่า Data Connect ใน dataconnect.yaml และ connector.yaml
  • บทบาท IAM ที่คุณจะต้องกําหนดค่าสําหรับโปรเจ็กต์ที่ใช้ Data Connect

ไฟล์การกําหนดค่าโปรเจ็กต์ Firebase

ข้อมูลอ้างอิงการกําหนดค่า firebase.json

ใช้คีย์ dataconnect เพื่อกำหนดค่าบริการ Data Connect อย่างน้อย 1 รายการในโปรเจ็กต์

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
      /connector
        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 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.
        # Optional. Defaults to @firebasegen/<connectorID>
      - package: string
        <option>: string
    # Optional.
    swiftSdk:
        # Path to the directory that will be updated with the latest generated
        # iOS Swift SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: 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.
      - package: string
        <option>: string

การกําหนดค่า IAM สําหรับโปรเจ็กต์ Data Connect

บทบาท IAM แบบละเอียดสำหรับ Data Connect

บทบาทพื้นฐานและบทบาทที่กําหนดไว้ล่วงหน้าของ Firebase จะเชื่อมโยงกับบทบาทData Connectระดับล่าง ดูการแมปในตาราง

หากต้องการจัดการการมอบหมายบทบาท IAM แต่ละรายการให้กับ Data Connect ในรายละเอียดเพิ่มเติม ให้ใช้คอนโซล Google Cloud

บทบาท IAM สิทธิ์
firebasedataconnect.googleapis.com/admin

ผู้ดูแลระบบ Firebase Data Connect API

บทบาทนี้รวมผู้ดู Firebase Data Connect API ด้วย
เทียบเท่ากับ firebasedataconnect.*

บทบาทเจ้าของระบบคลาวด์ ผู้แก้ไขระบบคลาวด์
ผู้ดูแลระบบ Firebase และผู้ดูแลระบบ Firebase Develop เป็นผู้ให้สิทธิ์
สิทธิ์เข้าถึงทรัพยากร Firebase Data Connect API โดยสมบูรณ์ รวมถึงข้อมูล

firebasedataconnect.googleapis.com/operations.delete
firebasedataconnect.googleapis.com/operations.cancel
firebasedataconnect.googleapis.com/services.create
firebasedataconnect.googleapis.com/services.update
firebasedataconnect.googleapis.com/services.delete
firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/schemas.create
firebasedataconnect.googleapis.com/schemas.update
firebasedataconnect.googleapis.com/schemas.delete
firebasedataconnect.googleapis.com/schemaRevisions.create
firebasedataconnect.googleapis.com/schemaRevisions.delete
firebasedataconnect.googleapis.com/connectors.create
firebasedataconnect.googleapis.com/connectors.update
firebasedataconnect.googleapis.com/connectors.delete
firebasedataconnect.googleapis.com/connectorRevisions.create
firebasedataconnect.googleapis.com/connectorRevisions.delete
firebasedataconnect.googleapis.com/viewer

ผู้ดู Firebase Data Connect API

บทบาทนี้มาจากบทบาทเจ้าของระบบคลาวด์ ผู้แก้ไขระบบคลาวด์
ผู้ดูระบบคลาวด์ ผู้ดูแลระบบ Firebase ผู้ดู Firebase
ผู้ดูแลระบบ Firebase Develop และผู้ดู Firebase Develop
สิทธิ์การอ่านอย่างเดียวสำหรับทรัพยากร Firebase Data Connect API บทบาทไม่ได้ให้สิทธิ์เข้าถึงข้อมูล

cloudresourcemanager.googleapis.com/projects.list
cloudresourcemanager.googleapis.com/projects.get

firebasedataconnect.googleapis.com/operations.list
firebasedataconnect.googleapis.com/operations.get
firebasedataconnect.googleapis.com/locations.list
firebasedataconnect.googleapis.com/locations.get
firebasedataconnect.googleapis.com/services.list
firebasedataconnect.googleapis.com/services.get
firebasedataconnect.googleapis.com/schemas.list
firebasedataconnect.googleapis.com/schemas.get
firebasedataconnect.googleapis.com/schemaRevisions.list
firebasedataconnect.googleapis.com/schemaRevisions.get
firebasedataconnect.googleapis.com/connectors.list
firebasedataconnect.googleapis.com/connectors.get
firebasedataconnect.googleapis.com/connectorRevisions.list
firebasedataconnect.googleapis.com/connectorRevisions.get
firebasedataconnect.googleapis.com/dataAdmin

ผู้ดูแลระบบข้อมูล Firebase Data Connect API

บทบาทนี้มาจากบทบาทเจ้าของระบบคลาวด์ ผู้แก้ไขระบบคลาวด์
ผู้ดูแลระบบ Firebase และผู้ดูแลระบบ Firebase Develop
สิทธิ์การอ่านและเขียนแหล่งข้อมูลโดยสมบูรณ์

firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/dataViewer

เครื่องมือดูข้อมูล Firebase Data Connect API

บทบาทเจ้าของระบบคลาวด์ ผู้แก้ไขระบบคลาวด์
ผู้ดูแลระบบ Firebase และผู้ดูแลระบบ Firebase Develop เป็นผู้ให้สิทธิ์เข้าถึง
สิทธิ์การอ่านอย่างเดียวสำหรับแหล่งข้อมูล

firebasedataconnect.googleapis.com/services.executeGraphqlRead