إنشاء نموذج أولي واختبار تطبيقات الويب باستخدام محاكي استضافة 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 Hosting، عليك تسجيل الدخول باستخدام رمز مميّز لتنفيذ firebase emulators:exec. لا تتطلّب المحاكيات الأخرى تسجيل الدخول.

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

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

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

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