مرجع الأمان والضبط

تتيح لك واجهة Firebase CLI إدارة مشاريعك على Firebase في دليل مشروع محلي يمكن التحكّم في إصداره. ويشمل ذلك Data Connect الخدمات في مشاريعك، ووصلات لهذه الخدمات، وموارد مثل المخطط ومصادر طلبات البحث وعمليات التحويل لكل موصل. تتيح لك واجهة برمجة التطبيقات أيضًا تثبيت محاكي Firebase Data Connect وتشغيله. إنّ واجهة برمجة التطبيقات هي بديل فعّال للعمل في وحدة تحكّم Firebase.

للحصول على تعليمات حول تثبيت تجربة Firebase CLI في برنامج المعاينة الخاصة، وأوامر CLI ذات الصلة بـ Data Connect، يُرجى الاطّلاع على مرجع CLI.

يوثّق هذا الدليل المرجعي ما يلي:

  • الإدخالات الخاصة بـ Data Connect في ملف إعداد مشروع firebase.json.
  • إعدادات Data Connect في dataconnect.yaml و connector.yaml
  • عليك ضبط أدوار "إدارة الهوية وإمكانية الوصول" لمشاريعك التي تستخدِم Data Connect.

ملفات إعداد مشروع Firebase

مرجع إعداد firebase.json

استخدِم مفاتيح dataconnect لإعداد خدمة واحدة أو أكثر من خدمات Data Connect في مشروعك.

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. يجب أن يكون مخطّط قاعدة البيانات متوافقًا مع مخطّط التطبيق قبل أن يتم نشر مخطّط التطبيق، وتعتبر أي تغييرات إضافية اختيارية. تعني التوافق أنّ عمليات نقل ملف تعريف schema تستند إلى مخطّط التطبيق الذي تكتبه. العناصر في قاعدة البيانات التي لا يستخدمها مخطط التطبيق يتم تركها بدون تعديل. لذلك، بعد النشر، قد تحتوي الخلفية على مخطّطات وجداول وأعمدة غير مستخدَمة.

يتم شرح قيم المفاتيح الأخرى في هذا الملف في التعليقات أدناه.

# 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

إعدادات إدارة الهوية وإمكانية الوصول لمشاريع "ربط البيانات"

أدوار إدارة الهوية وإمكانية الوصول الدقيقة لـ Data Connect

يتمّ ربط الأدوار الأساسية وأدوار Firebase المحدّدة مسبقًا بأدوار Data Connect من المستوى الأدنى. يُرجى الرجوع إلى الجدول لمعرفة عملية الربط.

لإدارة عمليات منح أدوار إدارة الهوية وإمكانية الوصول الفردية لـ Data Connect على مستوى أكثر دقة، استخدِم وحدة تحكُّم Google Cloud.

دور إدارة الهوية وإمكانية الوصول الأذونات
firebasedataconnect.googleapis.com/admin

مشرف Firebase Data Connect API

يتضمّن هذا الدور دور "مُشاهد Firebase Data Connect API".
تعادل firebasedataconnect.*.

يتم توفير هذا من خلال أدوار "مالك السحابة الإلكترونية" و"محرِّر السحابة الإلكترونية"
ومشرف Firebase ومشرف تطوير Firebase.
الإذن بالوصول الكامل إلى موارد 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"

يتم توفير هذا الدور من خلال أدوار "مالك السحابة الإلكترونية" و"محرِّر السحابة الإلكترونية" و
"مُستخدِم السحابة الإلكترونية" و"مشرف 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".
إذن بالوصول الكامل للقراءة والكتابة إلى مصادر البيانات

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

مُستخدِم واجهة برمجة التطبيقات Firebase Data Connect API للاطّلاع على البيانات

توفّر هذه الوظيفة أدوار "مالك السحابة الإلكترونية" و"محرِّر السحابة الإلكترونية"
ومشرف Firebase ومشرف تطوير Firebase.
إذن بالقراءة فقط في الوصول إلى مصادر البيانات

firebasedataconnect.googleapis.com/services.executeGraphqlRead