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

قبل البدء في إنشاء نماذج أولية لتطبيق الويب واختباره باستخدام محاكي Firebase 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.

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