استخدم Extensions Emulator لتقييم الامتدادات

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

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

ماذا يمكنني أن أفعل بمحاكي الامتدادات؟

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

اختر مشروع Firebase

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

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

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

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

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

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

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

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

تجريبي

لا يحتوي مشروع Firebase التجريبي على تهيئة Firebase حقيقية ولا موارد مباشرة. يتم الوصول إلى هذه المشاريع عادةً عبر مختبرات الرموز أو البرامج التعليمية الأخرى.

معرفات المشروع للمشاريع التجريبية لها البادئة demo- .

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

نوصيك باستخدام المشاريع التجريبية حيثما أمكن ذلك. الفوائد تشمل:

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

تثبيت وتقييم الامتداد

يعد استخدام محاكي الامتدادات لتقييم ما إذا كان الامتداد يلبي احتياجاتك أمرًا سهلاً.

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

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

firebase emulators:exec my-test.sh

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

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

سحابة IAM

لا يحاول Firebase Emulator Suite تكرار أو احترام أي سلوك متعلق بـ IAM للتشغيل. تلتزم المحاكيات بقواعد أمان Firebase المقدمة ، ولكن في المواقف التي يتم فيها استخدام IAM عادةً ، على سبيل المثال لتعيين وظائف السحابة التي تستدعي حساب الخدمة وبالتالي الأذونات ، فإن المحاكي غير قابل للتكوين وسيستخدم الحساب المتوفر عالميًا على جهاز المطور الخاص بك ، مشابه لتشغيل برنامج نصي محلي مباشرة.

اثار تحديد نوع

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

ماذا بعد؟