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

قبل استخدام محاكي 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 لتقييم ما إذا كانت الإضافة تلبي احتياجاتك بسهولة أكبر.

لنفترض أنّك مهتم بإضافة "الرسالة الإلكترونية المشغِّلة" (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 لإضافة بيانات إلى مجموعة مستندات الرسائل الإلكترونية وإعداد موارد خلفية أخرى، على النحو المطلوب من خلال إضافة "الرسالة الإلكترونية المشغِّلة".

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

firebase emulators:exec my-test.sh

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

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

Cloud IAM

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

قيود على نوع التنشيط

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

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