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

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 จัดเก็บข้อมูลการกำหนดค่าเกี่ยวกับตำแหน่ง ของแหล่งที่มาของสคีมาแอปพลิเคชัน แหล่งที่มาของเครื่องมือเชื่อมต่อ และการเชื่อมต่อแหล่งข้อมูล ไฟล์นี้ยังทำหน้าที่เป็นสัญญาณไดเรกทอรีโปรเจ็กต์สำหรับ CLI Firebase

คีย์ 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.*

ขั้นตอนนี้ให้บริการโดยเจ้าของระบบคลาวด์, Cloud Editor,
บทบาทผู้ดูแลระบบ 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