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

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

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

ما هي الإجراءات التي يمكنني تنفيذها باستخدام Firebase Hosting المحاكي؟

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

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

اختيار مشروع على 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.

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