إنشاء نموذج أولي واختبار تطبيقات الويب باستخدام محاكي استضافة Firebase

قبل بدء إنشاء النماذج الأولية لتطبيق الويب واختباره باستخدام emuFirebase Hosting، تأكَّد من فهم سير عمل Firebase Local Emulator Suite العام، ومن تثبيت Local Emulator Suite وضبطه ومراجعة أوامر سطر الأوامر.

يجب أيضًا أن تكون على دراية بالميزات وعملية التنفيذ لنظام Firebase Hosting. ابدأ بقراءة مقدمة عن Firebase Hosting.

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

يقدّم محاكي Firebase Hosting محاكاة محلية عالية الدقة لخدمات Hosting، ما يوفر الكثير من الوظائف المتوفّرة في Hosting العلني. يتيح لك محاكي Hosting التالي:

  • إنشاء نماذج أولية لمواقعك الإلكترونية الثابتة وتطبيقات الويب بدون تحمُّل رسوم تخزين أو استخدام
  • إنشاء نماذج أولية لدوالّ HTTPS واختبارها وتصحيح الأخطاء فيها قبل نشرها على موقعك الإلكتروني المُستضاف
  • اختبار المواقع الإلكترونية وتطبيقات الويب في سير عمل التكامل المستمر المستند إلى حاويات

اختيار مشروع على Firebase

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

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

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

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

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

تحتوي المشاريع الحقيقية على موارد نشطة، مثل نُسخ قاعدة البيانات أو حِزم التخزين أو الدوالّ أو أيّ مورد آخر أعددته لهذا المشروع على Firebase.

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

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

تجريبي

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

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

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

ننصحك باستخدام المشاريع التجريبية كلما أمكن. تتضمّن المزايا ما يلي:

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

سير العمل الأساسي لإنشاء النماذج الأولية

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

  1. (اختياري) سيتفاعل تطبيقك المستضاف على الجهاز تلقائيًا مع موارد المشروع الحقيقية، وليس المحاكاة (الدوالّ وقاعدة البيانات والقواعد وما إلى ذلك). يمكنك بدلاً من ذلك ربط تطبيقك اختياريًا لاستخدام أي موارد محاكاة لمشروع سبق لك إعداده. مزيد من المعلومات: Realtime Database | Cloud Firestore | Cloud Functions

  2. من جذر دليل المشروع على الجهاز، نفِّذ الأمر التالي:

    firebase emulators:start
  3. افتح تطبيق الويب على عنوان URL المحلي الذي تعرضه واجهة برمجة التطبيقات (عادةً http://localhost:5000).

  4. لتعديل عنوان URL على الجهاز لتضمين التغييرات، أعِد تحميل المتصفّح.

الاختبار من الأجهزة المحلية الأخرى

لا يستجيب المحاكيات تلقائيًا إلا للطلبات الواردة من localhost. ويعني ذلك أنّه سيكون بإمكانك الوصول إلى المحتوى المستضاف من متصفّح الويب على الكمبيوتر، ولكن ليس من الأجهزة الأخرى على شبكتك. إذا أردت الاختبار من أجهزة محلية أخرى، عليك ضبط firebase.json على النحو التالي:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

إنشاء رموز مميّزة لمنح الأذونات لسير عمل الدمج المستمر

إذا كانت عمليات دمج الإصدارات المستمرة تعتمد على ميزة "استضافة Firebase"، عليك تسجيل الدخول باستخدام رمز مميّز لتشغيل firebase emulators:exec. لا تتطلّب محاكيات Android الأخرى تسجيل الدخول.

لإنشاء رمز مميّز، يمكنك تشغيل firebase login:ci في بيئتك المحلية، ويجب عدم تنفيذ ذلك من نظام CI. اتّبِع التعليمات لتأكيد الهوية. لن تحتاج إلى تنفيذ هذه الخطوة إلا مرة واحدة لكل مشروع، لأنّ الرمز المميّز سيكون صالحًا في جميع الإصدارات. يجب التعامل مع الرمز المميّز مثل كلمة مرور، لذا احرص على الحفاظ على سرّيته.

إذا كانت بيئة التطوير المتكامل (CI) تسمح لك بتحديد متغيّرات البيئة التي يمكن استخدامها في نصوص الترميز البرمجي للإنشاء، ما عليك سوى إنشاء متغيّر بيئة يُسمى FIREBASE_TOKEN، مع القيمة التي هي سلسلة رمز الوصول. ستلتقط Firebase CLI تلقائيًا متغيّر FIREBASE_TOKEN في البيئة، وسيبدأ المحاكيات بشكل صحيح.

كحلّ أخير، يمكنك ببساطة تضمين الرمز المميّز في نصّ إنشاء التطبيق، ولكن تأكّد من أنّ الجهات غير الموثوق بها لا يمكنها الوصول إليه. في ما يتعلّق بهذه الطريقة المبرمَجة، يمكنك إضافة --token "YOUR_TOKEN_STRING_HERE" إلى الأمر firebase emulators:exec.

الخطوة التالية