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