يوفّر لك 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 CLI، باتّباع دليل التثبيت. احرص على التحديث بانتظام، لأنّه يتم تطوير محاكي Data Connect بشكل نشط من خلال إصلاح الأخطاء وإضافة ميزات جديدة.
إذا لم يسبق لك إجراء ذلك، عليك إعداد الدليل الحالي للعمل كأحد مشاريع Firebase، مع اتّباع التعليمات لتحديد المنتجات التي تريد استخدامها:
firebase init
ضبط إعدادات Local Emulator Suite أو تعديلها
إذا كنت قد بدأت محاكي Data Connect من إضافة Data Connect VS Code، تم تثبيت المحاكي نيابةً عنك، إذا لزم الأمر.
يمكنك استخدام واجهة سطر أوامر Firebase لتثبيت المحاكي يدويًا مع مكونات أخرى محدّدة من Local Emulator Suite. يشغِّل هذا الأمر معالجًا لإعدادات يتيح لك اختيار المحاكيات التي تهمّك وتنزيل الملفات الثنائية للمحاكيات ذات الصلة وضبط منافذ المحاكيات إذا كانت الإعدادات التلقائية غير مناسبة.
firebase init emulators
بعد تثبيت المحاكي، لن يتم إجراء عمليات فحص للتحديثات ولن يتم إجراء عمليات تنزيل إضافية تلقائية إلى أن يتم تحديث إصدار Firebase CLI.
اختيار مشروع على 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 وإعداده باستخدام الحاويات في عملية إعداد CI نموذجية هي عملية مباشرة.
في ما يلي بعض المشاكل التي يجب أخذها في الاعتبار:
- يتم تثبيت ملفات المحاكي الثنائية وتخزينها مؤقتًا في
~/.cache/firebase/emulators/
. قد تحتاج إلى إضافة هذا المسار إلى إعدادات ملف التخزين المؤقت لـ CI لتجنُّب عمليات التنزيل المتكرّرة. - إذا لم يكن لديك ملف
firebase.json
في مستودعك، عليك إضافة وسيطة سطر أوامر إلى الأمرemulators:start
أوemulators:exec
لتحديد المحاكيات التي يجب تشغيلها. على سبيل المثال،--only dataconnect
.
محو قاعدة بياناتك بين الاختبارات
لإعادة ضبط البيئات الاختبارية بين عمليات التشغيل، تنصح Firebase بما يلي:
- كتابة عمليات تحويل مخصّصة للتعامل مع ما يلي:
- في عملية الإعداد، املأ مثيل قاعدة بيانات محلية باستخدام البيانات الأساسية.
- في عملية الإزالة، احذف البيانات المعدَّلة من مثيل قاعدة بيانات ما بعد الاختبار.
أوجه الاختلاف بين محاكي Data Connect والإصدار العلني
يحاكي محاكي Data Connect العديد من ميزات المنتج من جهة الخادم. ومع ذلك، هناك بعض الاستثناءات التي يجب أخذها في الاعتبار:
- قد يختلف إصدار PGLite وإعداداته التفصيلية عن إصدار مثيل Cloud SQL في مرحلة الإنتاج.
- إذا كنت تستخدم المحاكي لتطوير التطبيقات باستخدام دمج Data Connect
pgvector وVertex API، يتم إجراء طلبات إلى واجهة برمجة التطبيقات Cloud Vertex API
مباشرةً، بدلاً من إجراء ذلك من خلال دمج Vertex في Cloud SQL. ومع ذلك، سيستمر إرسال طلبات برمجية
إلى واجهة برمجة التطبيقات العلنية، ما يعني أنّه عليك استخدام مشروع Firebase
حقيقي، ولا يمكنك استخدام مشروع
demo-
، وسيتم تحمُّل تكاليف Vertex API.