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

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

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

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

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

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

تجريبي

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

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

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

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

  • إعداد أسهل، إذ يمكنك تشغيل المحاكيات بدون إنشاء مشروع Firebase
  • أمان أقوى، لأنه في حال استدعى الرمز عن طريق الخطأ موارد غير محاكية (إنتاج)، لن يكون هناك أي فرصة لتغيير البيانات أو استخدامها أو إصدار فواتير لها
  • توفير إمكانية أفضل لاستخدام التطبيق بلا إنترنت، إذ لن تحتاج إلى الاتصال بالإنترنت لتنزيل إعدادات حزمة 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. لا تتطلّب المحاكيات الأخرى تسجيل الدخول.

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

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

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

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