اختبار تطبيق الويب على الجهاز ومشاركة التغييرات مع الآخرين ونشر التطبيق مباشرة

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

قبل البدء

أكمِل الخطوات المُدرَجة في Hosting صفحة "البدء"، وعلى وجه التحديد المهام التالية:

  1. ثبِّت Firebase CLI أو عدِّله إلى أحدث إصدار.
  2. اربط دليل المشروع على الجهاز (الذي يحتوي على محتوى تطبيقك) بمشروعك على Firebase.

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

الخطوة 1: الاختبار على الجهاز

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

Hosting هو جزء من Firebase Local Emulator Suite، يتيح لتطبيقك التفاعل مع محتوى Hosting وملفه الشخصي المحاكيَين، بالإضافة إلى موارد المشروع المحاكية اختياريًا (الدوالّ وقواعد البيانات والقواعد).

  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"
    }
  }

الخطوة 2: المعاينة والمشاركة

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

بعد نشر تطبيق الويب في قناة معاينة، تعرِض Firebase تطبيقك على "عنوان URL للمعاينة"، وهو عنوان URL مؤقت يمكن مشاركته. عند استخدام عنوان URL لمعاينة التطبيق، يتفاعل تطبيق الويب مع الخلفية الحقيقية لجميع موارد المشروع (باستثناء أي دالّات"مُثبَّتة" في ملف برمجة إعادة الكتابة الإعداد).

يُرجى العِلم أنّه على الرغم من أنّه من الصعب تخمين عناوين URL الخاصة بالإصدارات التجريبية (لأنّها تحتوي على رمز درهم ناتج عن عملية برمجية عشوائية)، إلا أنّها متاحة للجميع. وبالتالي، يمكن لأي شخص يعرف عنوان URL الوصول إليه.

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

    firebase hosting:channel:deploy CHANNEL_ID

    استبدِل CHANNEL_ID بسلسلة لا تحتوي على مسافات (مثلاً، feature_mission-2-mars). سيتم استخدام هذا المعرّف لإنشاء عنوان URL الخاص بالمعاينة والمرتبط بالقناة الاختبارية.

  2. افتح تطبيق الويب على عنوان URL الخاص بالمعاينة الذي يعرضه سطر الأوامر. سيظهر بالشكل التالي: PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app

  3. لتعديل عنوان URL الخاص بالمعاينة وإضافة التغييرات، نفِّذ الأمر نفسه مرة أخرى. تأكَّد من تحديد CHANNEL_ID نفسه في الأمر.

اطّلِع على مزيد من المعلومات حول إدارة قنوات المعاينة، بما في ذلك كيفية ضبط تاريخ انتهاء صلاحية القناة.

تتيح Firebase Hosting إجراءً على GitHub ينشئ تلقائيًا عنوان URL لمعاينة ويُعدّله عند تأكيد التغييرات في طلب سحب. تعرَّف على كيفية إعداد هذا الإجراء على GitHub واستخدامه.

الخطوة 3: نشر محتوى مباشر

عندما تكون مستعدًا لمشاركة التغييرات مع العالم، يمكنك نشر Hosting المحتوى والإعدادات على قناتك المباشرة. يوفّر Firebase عدة خيارات مختلفة لهذه الخطوة استنادًا إلى حالة الاستخدام (اطّلِع على الخيارات أدناه).

الخيار 1: استنساخ المحتوى من قناة معاينة إلى قناتك المباشرة

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

  1. من أي دليل، نفِّذ الأمر التالي:

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

    استبدِل كل عنصر نائب بما يلي:

    • SOURCE_SITE_ID وTARGET_SITE_ID: هما معرّفَان للمواقع الإلكترونية Hosting التي تتضمّن القنوات.

      • بالنسبة إلى موقعك الإلكتروني التلقائي على Hosting، استخدِم رقم تعريف مشروعك على Firebase.
      • يمكنك تحديد المواقع الإلكترونية التي تقع في مشروع Firebase نفسه أو حتى في مشاريع Firebase مختلفة.
    • SOURCE_CHANNEL_ID: هو معرّف القناة التي تعرض حاليًا الإصدار الذي تريد نشره على قناتك المباشرة.

      • بالنسبة إلى القناة المباشرة، استخدِم live كمعرّف القناة.
  2. عرض التغييرات (الخطوة التالية).

الخيار 2: النشر من دليل المشروع على الجهاز إلى قناتك على الويب

يمنحك هذا الخيار المرونة في تعديل الإعدادات الخاصة بالقنوات البث المباشر أو نشرها حتى إذا لم تكن قد استخدمت قناة معاينة.

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

    firebase deploy --only hosting
  2. عرض التغييرات (الخطوة التالية).

الخطوة 4: عرض التغييرات على موقعك الإلكتروني المباشر

ينشر كلا الخيارَين أعلاه محتوى Hosting وإعداداته على المواقع الإلكترونية التالية:

  • النطاقات الفرعية التي وفّرتها Firebase لموقعك التلقائي على Hosting وأي مواقع Hosting إضافية:
    SITE_ID.web.app (مثل PROJECT_ID.web.app)
    SITE_ID.firebaseapp.com (مثل PROJECT_ID.firebaseapp.com)

  • أي نطاقات مخصّصة ربطتها بأحد مواقعك الإلكترونية على Hosting

لتقييد عملية النشر على موقع Hosting إلكتروني معيّن، حدِّد هدف نشر في أمر سطر الأوامر.

أنشطة النشر والمعلومات الأخرى

إضافة تعليق لعملية النشر

يمكنك اختياريًا إضافة تعليق إلى عملية النشر. سيظهر هذا التعليق مع معلومات النشر الأخرى في لوحة بيانات Hosting في وحدة تحكّم Firebase. على سبيل المثال:

firebase deploy --only hosting -m "Deploying the best new feature ever."

إضافة مهام النشر المُسبق ومهام النشر المستندة إلى النص

يمكنك اختياريًا ربط نصوص Shell البرمجية بأمر firebase deploy لأداء مهام ما قبل النشر أو ما بعد النشر. على سبيل المثال، يمكن أن يُرسِل إجراء ما بعد النشر إشعارًا إلى المشرفين بشأن عمليات نشر محتوى الموقع الإلكتروني الجديد. يُرجى الاطّلاع على مستندات واجهة سطر الأوامر Firebase لمعرفة المزيد من التفاصيل.

تخزين المحتوى المنشور في ذاكرة التخزين المؤقت

عند تقديم طلب للحصول على محتوى ثابت، تُخزِّن Firebase Hosting تلقائيًا المحتوى في شبكة توصيل المحتوى (CDN). في حال إعادة نشر محتوى موقعك الإلكتروني، تُزيل Firebase تلقائيًا كل المحتوى الثابت المخزّن مؤقتًا في شبكة توصيل المحتوى (CDN) حتى تتلقّى الطلبات الجديدة محتوى موقعك الإلكتروني الجديد.

يُرجى العلم أنّه يمكنك ضبط إعدادات تخزين المحتوى الديناميكي في ذاكرة التخزين المؤقت.

العرض عبر HTTPS

تأكَّد من تحميل جميع الموارد الخارجية التي لم يتم استضافتها على Firebase Hosting عبر بروتوكول SSL (HTTPS)، بما في ذلك أي نصوص برمجية خارجية. لا تسمح معظم المتصفحات للمستخدمين بتحميل "محتوى مختلط" (زيارات طبقة المقابس الآمنة (SSL) وغيرها من الزيارات غير المؤمّنة بطبقة المقابس الآمنة).

حذف الملفات

في Firebase Hosting، الطريقة الأساسية لحذف ملفات محدّدة من موقع إلكتروني تم نشره هي حذف الملفات محليًا، ثم إعادة نشرها.

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