توفّر لك Firebase Data Connect محاكيًا محليًا لإنشاء نماذج أولية شاملة، بالإضافة إلى مسارات التكامل المستمر والتسليم المستمر (CI/CD):
- يتفاعل محاكي Data Connect مع نسخة محلية مدمجة من قاعدة بيانات PGLite تتيح لك إنشاء نماذج أولية لطلبات البحث وعمليات التعديل واختبار رمز العميل في بيئة محلية بالكامل.
- يمكن أيضًا استخدام محاكي Data Connect في المهام غير التفاعلية. تتيح لك هذه الأداة إجراء اختبارات مبرمَجة، وهي مناسبة للاستخدام مع سير عمل CI/CD. يكون هذا مفيدًا عندما تكون المخططات ثابتة وتريد إنشاء نموذج أولي واختبار الرمز البرمجي من جهة العميل.
يغطّي هذا الدليل عملية تثبيت المحاكي واستخدامه بتفصيل أكبر من دليل البدء السريع.
تثبيت محاكي Data Connect
قبل تثبيت Local Emulator Suite لاستخدام محاكي Data Connect، ستحتاج إلى ما يلي:
- الإصدار 18.0 من Node.js أو إصدار أحدث
تثبيت واجهة سطر الأوامر Firebase وإعداد دليل المشروع
ثبِّت واجهة سطر الأوامر Firebase باتّباع دليل التثبيت. احرص على التحديث بانتظام، لأنّ محاكي Data Connect يخضع لتطوير نشط يشمل إصلاح الأخطاء وإضافة ميزات جديدة.
إذا لم يسبق لك إجراء ذلك، عليك تهيئة دليل العمل الحالي كمشروع على 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 مباشرةً،
بدلاً من إجرائها من خلال عملية الربط بين Cloud SQL وVertex. ومع ذلك، سيتم إجراء طلبات إلى واجهة برمجة التطبيقات المخصّصة للإنتاج، ما يعني أنّه عليك استخدام مشروع Firebase حقيقي، ولا يمكنك استخدام مشروع
demo-، وسيتم تحمّل تكاليف Vertex API.