اختبر محليًا ، وشارك التغييرات ، ثم انشرها مباشرةً

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

قبل ان تبدأ

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

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

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

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

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

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

  1. (اختياري) بشكل افتراضي ، سيتفاعل تطبيقك المستضاف محليًا مع موارد المشروع الحقيقية ، وليس المحاكية (الوظائف ، وقاعدة البيانات ، والقواعد ، وما إلى ذلك). يمكنك بدلاً من ذلك توصيل تطبيقك اختياريًا لاستخدام أي موارد مشروع تمت محاكاتها قمت بتكوينها. اعرف المزيد: Realtime Database | سحابة Firestore | وظائف السحابة

  2. من جذر دليل المشروع المحلي الخاص بك ، قم بتشغيل الأمر التالي:

    firebase emulators:start
  3. افتح تطبيق الويب الخاص بك على عنوان URL المحلي الذي يعرضه CLI (عادةً 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 للمعاينة الذي يعرضه CLI. سيبدو كما يلي: PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.app

  3. لتحديث عنوان URL للمعاينة بالتغييرات ، قم بتشغيل نفس الأمر مرة أخرى. تأكد من تحديد نفس CHANNEL_ID في الأمر.

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

يدعم Firebase Hosting إجراء 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."

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

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

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

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

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

الخدمة عبر HTTPS

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

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