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

قبل نشر التغييرات على موقعك الإلكتروني المباشر، ننصحك بعرضها واختبارها. تتيح لك Firebase Hosting عرض التغييرات واختبارها محليًا والتفاعل مع موارد مشروع الخلفية المحاكية. إذا كنت بحاجة إلى أن يعرض أعضاء فريقك التغييرات ويختبروها، يمكن لخدمة Hosting إنشاء عناوين URL مؤقتة قابلة للمشاركة لمعاينة موقعك الإلكتروني.Hosting نوفّر أيضًا عملية تكامل مع 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 للمعاينة الذي تعرضه واجهة سطر الأوامر. سيبدو عنوان URL على النحو التالي: شيء مثل هذا: PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app

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

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

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

الخطوة 3: النشر بشكل مباشر

عندما تكون مستعدًا لمشاركة التغييرات مع العالم، انشر Hosting محتوى وإعدادات خدمة 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."

إضافة مهام مكتوبة قبل النشر وبعده

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

تخزين المحتوى المنشور مؤقتًا

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

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

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

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

حذف ملفات

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

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