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

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

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

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

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

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

تحاكي "حزمة أدوات المحاكاة المحلية في Firebase" منتجات مشروع واحد على Firebase.

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

تتيح حزمة المحاكي المحلي إمكانية محاكاة مشاريع 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. ابدأ تشغيل مجموعة أدوات المحاكاة المحلية كما تفعل عادةً.

    firebase emulators:start

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

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

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

firebase emulators:exec my-test.sh

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

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

Cloud IAM

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

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

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

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