اختبِر تطبيق الويب محليًا، وشارِك التغييرات مع الآخرين، ثم انشره مباشرةً

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

قبل البدء

أكمل الخطوات المدرجة في صفحة بدء استضافة الاستضافة، وتحديدًا المهام التالية:

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

يمكنك اختياريًا نشر محتوى "استضافة" تطبيقك وتهيئته، ولكنّه ليس شرطًا أساسيًا للخطوات الواردة في هذه الصفحة.

الخطوة 1: الاختبار محليًا

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

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

  1. (اختياري) سيتفاعل التطبيق المُستضاف محليًا تلقائيًا مع موارد المشروع الحقيقية وليست التي تتم محاكاتها (الدوال وقاعدة البيانات والقواعد وما إلى ذلك). يمكنك بدلاً من ذلك ربط تطبيقك اختياريًا لاستخدام أي موارد مشروع تم محاكاتها. مزيد من المعلومات: قاعدة بيانات في الوقت الفعلي | 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 إجراء GitHub الذي ينشئ ويحدّث عنوان URL للمعاينة تلقائيًا عند إجراء تغييرات على طلب سحب. تعرَّف على كيفية إعداد تطبيق GitHub Action واستخدامه.

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

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

الخيار 1: إنشاء نسخة طبق الأصل من قناة المعاينة إلى قناتك المباشرة

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

  1. من أي دليل، شغِّل الأمر التالي:

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

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

    • SOURCE_SITE_ID وTARGET_SITE_ID: هذه هي أرقام تعريف المواقع الإلكترونية المضيفة التي تحتوي على القنوات.

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

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

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

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

  1. من جذر دليل المشروع المحلي، شغِّل الأمر التالي:

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

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

ينشر كلا الخيارين أعلاه محتوى الاستضافة والتهيئة على المواقع التالية:

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

  • أي نطاقات مخصصة ربطتها بمواقع الاستضافة الخاصة بك

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

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

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

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

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

إضافة المهام النصية التي سيتم نشرها مسبقًا وما بعد النشر

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

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

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

لاحظ أنه يمكنك ضبط التخزين المؤقت للمحتوى الديناميكي.

العرض عبر HTTPS

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

جارٍ حذف الملفات

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

الخطوات اللاحقة