استخدام "محاكي الإضافات" لتقييم الإضافات

قبل استخدام محاكي Extensions مع تطبيقك، تأكَّد من فهم سير عمل Firebase Local Emulator Suite بشكل عام، ومن تثبيت وإعداد Local Emulator Suite ومراجعة أوامر واجهة سطر الأوامر.

يفترض هذا الدليل أيضًا أنّك على دراية بـ Firebase Extensions وكيفية استخدامها في تطبيقات Firebase.

ما الذي يمكنني فعله باستخدام محاكي Extensions؟

باستخدام محاكي Extensions، يمكنك تثبيت الإضافات وإدارتها في بيئة محلية آمنة وفهم إمكاناتها بشكل أفضل مع تقليل التكلفة الواردة في الفاتورة. يشغّل المحاكي وظائف الإضافة محليًا، بما في ذلك الوظائف التي يتم تشغيلها في الخلفية باستخدام المحاكيات لـ Cloud Firestore وRealtime Database وCloud Storage for Firebase وAuthentication و Pub/Sub، والوظائف التي يتم تشغيلها من خلال Eventarc والتي يتم تنفيذها في Cloud Functions الإصدار 2.

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

يحاكي Firebase Local Emulator Suite المنتجات لمشروع Firebase واحد.

لاختيار المشروع الذي تريد استخدامه، قبل بدء المحاكيات، نفِّذ الأمر firebase use في واجهة سطر الأوامر في دليل العمل. أو يمكنك تمرير العلامة --project إلى كل أمر من أوامر المحاكي.

يتيح Local Emulator Suite محاكاة مشاريع Firebase الحقيقية والمشاريع التجريبية.

نوع المشروع الميزات الاستخدام مع المحاكيات
ريال

مشروع Firebase الحقيقي هو مشروع أنشأته وأعددته (على الأرجح من خلال وحدة تحكّم Firebase).

تحتوي المشاريع الحقيقية على موارد نشطة، مثل مثيلات قواعد البيانات أو حِزم التخزين أو الدوال أو أي موارد أخرى تم إعدادها لمشروع Firebase هذا.

عند العمل على مشاريع Firebase حقيقية، يمكنك تشغيل المحاكيات لأي من المنتجات المتوافقة أو جميعها.

بالنسبة إلى أي منتجات لا تحاكيها، ستتفاعل تطبيقاتك والرمز البرمجي مع المورد المباشر (مثيل قاعدة البيانات، حزمة التخزين، الدالة، وما إلى ذلك).

تجريبي

لا يتضمّن مشروع Firebase التجريبي أي إعدادات حقيقية في Firebase ولا يتضمّن أي موارد مباشرة. ويمكن عادةً الوصول إلى هذه المشاريع من خلال الدروس التطبيقية حول الترميز أو البرامج التعليمية الأخرى.

تحتوي أرقام تعريف المشاريع التجريبية على البادئة demo-.

عند العمل على مشاريع Firebase التجريبية، تتفاعل تطبيقاتك ورموزك البرمجية مع المحاكيات فقط. إذا حاول تطبيقك التفاعل مع مورد لا يعمل المحاكي له، سيتعذّر تنفيذ هذا الرمز.

ننصحك باستخدام المشاريع التجريبية كلما أمكن ذلك. تتضمّن المزايا ما يلي:

  • إعداد أسهل، حيث يمكنك تشغيل المحاكيات دون إنشاء مشروع Firebase على الإطلاق
  • أمان أقوى، لأنّه إذا استدعى الرمز عن طريق الخطأ موارد غير محاكاة (إنتاجية)، لن يكون هناك أي احتمال لتغيير البيانات واستخدامها والفوترة
  • دعم أفضل بلا إنترنت، لأنّه لا حاجة إلى الاتصال بالإنترنت لتنزيل إعدادات حزمة تطوير البرامج (SDK).

تثبيت إضافة وتقييمها

من السهل استخدام محاكي Extensions لتقييم ما إذا كانت الإضافة تلبي احتياجاتك.

لنفترض أنّك مهتم بإضافة "إرسال رسالة إلكترونية" (Trigger Email) (firestore-send-email)، مع العلم أنّ سير العمل التالي يشمل أي إضافة. عند تشغيل إضافة Trigger Email مع المحاكيات المحلية، ستستخدم تلقائيًا محاكيَي Cloud Firestore وCloud Functions.

لتقييم إضافة محليًا:

  1. أضِف الإضافة إلى بيان الإضافات المحلية. بيان الإضافات هو قائمة بنُسخ الإضافات وإعداداتها.

    firebase ext:install --local firebase/firestore-send-email

    سيؤدي تشغيل الأمر أعلاه إلى مطالبتك بضبط أحدث إصدار من إضافة firebase/firestore-send-email وحفظ الإعدادات في ملف البيان، ولكن لن يتم نشر الإعدادات في مشروعك. لمزيد من المعلومات حول هذا الموضوع، يُرجى الاطّلاع على إدارة إعدادات الإضافات باستخدام ملفات البيان.

  2. ابدأ Local Emulator Suite كالمعتاد.

    firebase emulators:start

الآن، باستخدام مثيل الإضافة firestore-send-email المدرج في البيان، سيقوم Local Emulator Suite بتنزيل رمز المصدر لهذه الإضافة إلى ~/.cache/firebase/extensions. بعد تنزيل المصادر، ستبدأ Local Emulator Suite وستتمكّن من تفعيل أي من الدوال التي يتم تشغيلها في الخلفية للإضافة وربط تطبيقك بـ Local Emulator Suite لاختبار تكاملها مع تطبيقك.

يمكنك استخدام Emulator Suite UI لإضافة البيانات إلى مجموعة مستندات البريد الإلكتروني وإعداد موارد أخرى في الخلفية، على النحو المطلوب في إضافة Trigger Email.

بدلاً من ذلك، بالنسبة إلى بيئات الاختبار غير التفاعلية، مثل سير عمل الدمج المتواصل، يمكنك كتابة نص برمجي اختباري لتقييم الإضافة التي تملأ بيانات Cloud Firestore اللازمة وتُفعِّل الدوال، من بين خطوات أخرى. بعد ذلك، يمكنك استدعاء Local Emulator Suite لتنفيذ نص الاختبار:

firebase emulators:exec my-test.sh

أوجه الاختلاف بين الاختبار باستخدام محاكي Extensions والإنتاج

يتيح لك محاكي Extensions اختبار الإضافات بطريقة تتطابق إلى حد كبير مع تجربة الإصدار العلني. ومع ذلك، هناك بعض الاختلافات عن سلوك الإنتاج.

Cloud IAM

لا تحاول "مجموعة أدوات المحاكاة" في Firebase تكرار أو اتّباع أي سلوك مرتبط بإدارة الهوية وإمكانية الوصول (IAM) للتشغيل. تلتزم المحاكيات بقواعد أمان Firebase المقدَّمة، ولكن في الحالات التي يتم فيها استخدام "إدارة الهوية وإمكانية الوصول" عادةً، على سبيل المثال لضبط حساب خدمة استدعاء Cloud Functions وبالتالي الأذونات، لا يمكن ضبط المحاكي وسيستخدم الحساب المتاح عالميًا على جهاز المطوّر، على غرار تشغيل نص برمجي محلي مباشرةً.

القيود المفروضة على نوع التشغيل

في الوقت الحالي، لا تتيح Firebase Local Emulator Suite سوى الدوال التي يتم تشغيلها من خلال طلبات HTTP، ومشغلات الأحداث المخصصة في Eventarc للإضافات، والدوال التي يتم تشغيلها من خلال أحداث في الخلفية لكل من Cloud Firestore وRealtime Database وCloud Storage for Firebase وAuthentication وPub/Sub. لتقييم الإضافات التي تستخدم أنواعًا أخرى من الدوال التي يتم تشغيلها، عليك تثبيت الإضافة في مشروع Firebase تجريبي.

ما هي الخطوات التالية؟