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

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

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

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

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

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

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

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

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

تجريبي

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

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

ماذا بعد؟