استخدام محاكي Data Connect لـ CI/CD

توفّر لك Firebase Data Connect محاكيًا محليًا لإنشاء نماذج أولية شاملة، بالإضافة إلى مسارات التكامل المستمر والتسليم المستمر (CI/CD):

  • يتفاعل محاكي Data Connect مع نسخة محلية مدمجة من قاعدة بيانات PGLite تتيح لك إنشاء نماذج أولية لطلبات البحث وعمليات التعديل واختبار رمز العميل في بيئة محلية بالكامل.
  • يمكن أيضًا استخدام محاكي Data Connect في العمل غير التفاعلي. تتيح لك هذه الأداة إجراء اختبارات مبرمَجة، وهي مناسبة للاستخدام مع سير عمل CI/CD. ويكون ذلك مفيدًا عندما تكون المخططات ثابتة وتريد إنشاء نموذج أولي واختبار الرمز البرمجي من جهة العميل.

يغطّي هذا الدليل عملية تثبيت المحاكي واستخدامه بتفصيل أكبر من دليل البدء السريع.

تثبيت محاكي Data Connect

قبل تثبيت Local Emulator Suite لاستخدام محاكي Data Connect، ستحتاج إلى ما يلي:

  • الإصدار 18.0 من Node.js أو إصدار أحدث

تثبيت واجهة سطر الأوامر Firebase وإعداد دليل المشروع

  1. ثبِّت واجهة سطر الأوامر Firebase باتّباع دليل التثبيت. احرص على التحديث بانتظام، لأنّ محاكي Data Connect يخضع لعملية تطوير نشطة تتضمّن إصلاح الأخطاء وإضافة ميزات جديدة.

  2. إذا لم يسبق لك إجراء ذلك، عليك تهيئة دليل العمل الحالي كمشروع Firebase، واتّباع التعليمات لتحديد المنتجات التي تريد استخدامها:

    firebase init

ضبط إعدادات Local Emulator Suite أو تعديلها

إذا بدأت محاكي Data Connect من إضافة Firebase VS Code، سيتم تثبيت المحاكي نيابةً عنك، إذا لزم الأمر.

يمكنك استخدام واجهة سطر الأوامر Firebase لتثبيت المحاكي يدويًا مع المكوّنات الأخرى المحدّدة في Local Emulator Suite. يبدأ هذا الأمر معالج الإعداد الذي يتيح لك اختيار المحاكيات التي تهمّك وتنزيل ملفات ثنائية للمحاكي وتحديد منافذ المحاكي إذا لم تكن الإعدادات التلقائية مناسبة.

  firebase init emulators

بعد تثبيت المحاكي، لن يتم إجراء أي عمليات تحقّق من التحديثات ولن يتم تنزيل أي ملفات إضافية تلقائيًا إلى أن تحدِّث Firebase إصدار واجهة سطر الأوامر.

اختيار مشروع على Firebase

في عملية الإعداد، يطلب منك Firebase CLI اختيار مشروع Firebase أو إنشائه. إذا اخترت مشروعًا حاليًا سبق أن أعددته باستخدام Data Connect في وحدة تحكّم Firebase، سيتم اقتراح الإعدادات التي اخترتها هناك.

إعداد المحاكي

ضبط المحاكي

سيساعدك تنفيذ عملية firebase init في التعرّف على خيارات إعداد المحاكي. كما هو الحال مع أدوات المحاكاة الأخرى في Local Emulator Suite، يتم تخزين مَعلمات الإعداد في ملفات المشروع المحلية.

  • يحتوي ملف firebase.json على عمليات تعيين منافذ المحاكي.
    • لا ينطبق مفتاح emulators:ui على المحاكي Data Connect.

الاستعانة بمراجع Data Connect محلية وعلنية

إذا أردت التأكّد من عدم التأثير في موارد الإنتاج، اضبط demo- projectID أو تأكَّد من إعداد رمز العميل للاتصال بالمحاكي، كما هو موضّح في قسم لاحق.

بدء تشغيل المحاكي

إذا كنت تشغّل المحاكي بشكل غير تفاعلي، مثلاً في مهام سير عمل CI/CD، ابدأ تشغيله باستخدام الخيار exec.

firebase emulators:exec ./path/to/test-script.sh

إذا كنت بصدد دمج طلبات بحث وتعديلات محدّدة مسبقًا في رمز العميل وكنت تستخدم المحاكي تحديدًا لاختبار العملاء، يمكنك استخدام الخيار start للعمل التفاعلي. يمكنك أيضًا بدء المحاكي من إضافة VS Code.

firebase emulators:start

تعديل رمز العميل للتواصل مع المحاكي

اضبط إعداداتك داخل التطبيق أو فئات الاختبار للتفاعل مع Data Connect المحاكي على النحو التالي.

JavaScript
import { initializeApp } from "firebase/app";
import { connectorConfig } from "@name-of-package";
import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect';

// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
  //...
};

const app = initializeApp(firebaseConfig);

const dataConnect = getDataConnect(app, connectorConfig);
connectDataConnectEmulator(dataConnect, "localhost", 9399);

// Make calls from your app
  
‫Kotlin Android
val connector = MoviesConnector.instance

// Connect to the emulator on "10.0.2.2:9399"
connector.dataConnect.useEmulator()

// (Alternatively) if you're running your emulator on non-default port:
connector.dataConnect.useEmulator(port = 9999)

// Make calls from your app
  
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig)

// Connect to the emulator on "127.0.0.1:9399"
connector.useEmulator()

// (alternatively) if you're running your emulator on non-default port:
connector.useEmulator(port: 9999)

// Make calls from your app
  

استخدام المحاكي للاختبار والدمج المستمر

تشغيل صور Local Emulator Suite المحفوظة في حاويات

تتسم عملية تثبيت Local Emulator Suite وإعداده باستخدام الحاويات في عملية إعداد نموذجية للدمج المتواصل بالبساطة.

في ما يلي بعض المشاكل التي يجب أخذها في الاعتبار:

  • يتم تثبيت ملفات المحاكي الثنائية وتخزينها مؤقتًا في ~/.cache/firebase/emulators/. يمكنك إضافة هذا المسار إلى إعدادات ذاكرة التخزين المؤقت الخاصة بالتكامل المستمر لتجنُّب عمليات التنزيل المتكرّرة.
  • إذا لم يكن لديك ملف firebase.json في المستودع، عليك إضافة وسيطة سطر أوامر إلى الأمر emulators:start أو emulators:exec لتحديد المحاكيات التي يجب بدء تشغيلها. على سبيل المثال، --only dataconnect.

محو قاعدة البيانات بين الاختبارات

لإعادة ضبط بيئات الاختبار بين عمليات التشغيل، تنصح Firebase بما يلي:

  • كتابة عمليات تغيير مخصّصة للتعامل مع ما يلي:
    • في عملية الإعداد، املأ نسخة من قاعدة البيانات المحلية بالبيانات الأولية.
    • في عملية الإيقاف، احذف البيانات المعدَّلة من مثيل قاعدة البيانات بعد الاختبار.

أوجه الاختلاف بين محاكي Data Connect وبيئة الإنتاج

يحاكي المحاكي Data Connect العديد من ميزات المنتج من جهة الخادم. ومع ذلك، هناك بعض الاستثناءات التي يجب الانتباه إليها:

  • قد يختلف إصدار PGLite وإعداداته التفصيلية عن إصدار مثيل Cloud SQL المخصّص للإنتاج.
  • إذا كنت تستخدم المحاكي للتطوير باستخدام Data Connect، يتم إجراء عمليات الربط بين pgvector وVertex API مباشرةً، بدلاً من الربط من خلال Vertex في Cloud SQL. ومع ذلك، سيتم إجراء طلبات إلى واجهة برمجة التطبيقات المخصّصة للإنتاج، ما يعني أنّه عليك استخدام مشروع Firebase حقيقي، ولا يمكنك استخدام مشروع demo-، وسيتم تحصيل تكاليف واجهة Vertex API.