استخدام محاكي SQL Connect لعملية التكامل المستمر/التسليم المستمر

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

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

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

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

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

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

تثبيت Firebase CLI وإعداد دليل المشروع

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

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

    firebase init

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

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

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

  firebase init emulators

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

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

في مسار الإعداد، يطلب منك Firebase CLI اختيار مشروع Firebase أو إنشاؤه. إذا اخترت مشروعًا حاليًا سبق لك إعداده باستخدام SQL Connect، سيتم اقتراح الإعدادات التي اخترتها أثناء إعداد المشروع.

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

ضبط المحاكي

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

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

العمل مع موارد SQL Connect المحلية والخاصة بالإنتاج

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

بدء المحاكي

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

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

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

firebase emulators:start

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

يمكنك إعداد الإعدادات داخل التطبيق أو فئات الاختبار للتفاعل مع الـ SQL 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 وضبطه باستخدام الحاويات في إعداد CI نموذجي أمر بسيط.

هناك بعض المشاكل التي يجب ملاحظتها:

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

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

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

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

كيف يختلف محاكي SQL Connect عن الإنتاج؟

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

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