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

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

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

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

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

اختيار مشروع في 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 لإضافة بيانات إلى مجموعة مستندات البريد الإلكتروني. وإعداد موارد الخلفية الأخرى، كما هو مطلوب من خلال إضافة Trigger Email.

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

firebase emulators:exec my-test.sh

اختلاف الاختبار باستخدام المحاكي "Extensions" عن مرحلة الإنتاج

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

Cloud IAM

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

قيود نوع التشغيل

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

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