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 وإعداد دليل المشروع
ثبِّت Firebase CLI، باتّباع دليل التثبيت. احرص على إجراء التحديثات بانتظام، لأنّ SQL Connect قيد التطوير النشط مع إصلاح الأخطاء وإضافة ميزات جديدة.
.إذا لم يسبق لك ذلك، ابدأ تهيئة دليل العمل الحالي كمشروع 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
مباشرةً، بدلاً من إجراءها من خلال تكامل Vertex في Cloud SQL. ومع ذلك، لا تزال الطلبات تُجرى إلى واجهة برمجة التطبيقات الخاصة بالإنتاج، ما يعني أنّه عليك استخدام مشروع Firebase حقيقي، ولا يمكنك استخدام مشروع
demo-، وسيتم تحمّل تكاليف Vertex API.