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

قبل نشر التغييرات على موقعك الإلكتروني، عليك عرضها واختبارها. يتيح لك 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 CLI للحصول على مزيد من التفاصيل.

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

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

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

العرض عبر بروتوكول HTTPS

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

حذف الملفات

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

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