قبل استخدام 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 v2.
اختيار مشروع على Firebase
تحاكي Firebase Local Emulator Suite المنتجات لمشروع واحد على Firebase.
لاختيار المشروع الذي تريد استخدامه، شغِّل الأمر firebase use في دليل العمل في واجهة سطر الأوامر قبل بدء المحاكيات. بدلاً من ذلك، يمكنك تمرير
العلامة --project إلى كل أمر من أوامر المحاكي.
Local Emulator Suite تتيح محاكاة مشاريع Firebase الحقيقية والمشاريع التجريبية.
| نوع المشروع | الميزات | الاستخدام مع المحاكيات |
|---|---|---|
| حقيقي |
مشروع Firebase الحقيقي هو مشروع أنشأته وأعددته (على الأرجح من خلال وحدة تحكّم Firebase). تحتوي المشاريع الحقيقية على موارد مباشرة، مثل مثيلات قاعدة البيانات أو مساحات التخزين أو الوظائف أو أي مورد آخر أعددته لمشروع Firebase هذا. |
عند العمل مع مشاريع Firebase الحقيقية، يمكنك تشغيل المحاكيات لأي من المنتجات المتوافقة أو جميعها. بالنسبة إلى أي منتجات لا تحاكيها، ستتفاعل تطبيقاتك ورمزك مع المورد المباشر (مثيل قاعدة البيانات أو مساحة التخزين أو الوظيفة وما إلى ذلك). |
| تجريبي |
لا يحتوي مشروع Firebase التجريبي على أي إعداد حقيقي على Firebase و لا على أي موارد مباشرة. عادةً ما يتم الوصول إلى هذه المشاريع من خلال المختبرات البرمجية أو البرامج التعليمية الأخرى. تحتوي أرقام تعريف المشاريع التجريبية على البادئة |
عند العمل مع مشاريع Firebase التجريبية، تتفاعل تطبيقاتك ورمزك مع المحاكيات فقط. إذا حاول تطبيقك التفاعل مع مورد لا يتم تشغيل محاكي له، سيتعذّر تنفيذ هذا الرمز. |
ننصحك باستخدام المشاريع التجريبية كلما أمكن ذلك. تتضمّن المزايا ما يلي:
- إعداد أسهل، لأنّه يمكنك تشغيل المحاكيات بدون إنشاء مشروع على Firebase
- أمان أقوى، لأنّه إذا استدعى الرمز عن طريق الخطأ موارد غير محاكاة (إنتاج)، لن يكون هناك أي احتمال لتغيير البيانات أو الاستخدام أو الفوترة
- دعم أفضل بلا إنترنت، لأنّه ليست هناك حاجة إلى الوصول إلى الإنترنت لتنزيل إعداد حزمة تطوير البرامج (SDK)
تثبيت إضافة وتقييمها
من السهل استخدام "محاكي Extensions" لتقييم ما إذا كانت الإضافة تلبي احتياجاتك.
لنفترض أنّك مهتم بإضافة "إرسال رسالة إلكترونية عند تفعيل حدث"
(firestore-send-email) ،
على الرغم من أنّ سير العمل التالي يغطي أي إضافة. عند تشغيل "إرسال رسالة إلكترونية عند تفعيل حدث" باستخدام المحاكيات المحلية،
سيتم تلقائيًا استخدام محاكيات Cloud Firestore و
Cloud Functions.
لتقييم إضافة محليًا:
أضِف الإضافة إلى بيان الإضافات المحلي. بيان الإضافات هو قائمة بمثيلات الإضافات وإعداداتها.
firebase ext:install --local firebase/firestore-send-email
سيطلب منك تشغيل الأمر أعلاه إعداد أحدث إصدار من إضافة
firebase/firestore-send-emailوحفظ الإعداد في البيان، ولكن لن يتم نشر الإعداد في مشروعك. لمزيد من المعلومات حول ذلك، يُرجى الاطّلاع على إدارة إعدادات الإضافات باستخدام البيانات.ابدأ 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 المقدَّمة، ولكن في الحالات التي يتم فيها عادةً استخدام "إدارة الهوية وإمكانية الوصول"، مثلاً لضبط حساب الخدمة الذي يستدعي Cloud Functions وبالتالي الأذونات، لا يمكن إعداد المحاكي وسيستخدم الحساب المتاح على مستوى العالم على جهاز المطوّر، على غرار تشغيل نص برمجي محلي مباشرةً.
قيود نوع التفعيل
في الوقت الحالي، لا تتيح Firebase Local Emulator Suite سوى الوظائف التي يتم تفعيلها بواسطة طلبات HTTP ، وعوامل تفعيل الأحداث المخصّصة في Eventarc للإضافات، والوظائف التي يتم تفعيلها بواسطة أحداث في الخلفية لكلّ من Cloud Firestore وRealtime Database و Cloud Storage for Firebase وAuthentication وPub/Sub. لتقييم الإضافات التي تستخدم أنواعًا أخرى من الوظائف التي يتم تفعيلها، عليك تثبيت الإضافة في مشروع اختبار على Firebase.
ما هي الخطوة التالية؟
- للاطّلاع على مجموعة منسّقة من الفيديوهات وأمثلة تفصيلية حول كيفية تنفيذ الإجراءات، يُرجى اتّباع قائمة تشغيل التدريب على محاكيات Firebase.