قبل نشر التغييرات على موقعك الإلكتروني المباشر، عليك الاطّلاع عليها واختبارها. تتيح لك Firebase Hosting عرض التغييرات واختبارها محليًا والتفاعل مع موارد مشروع الخلفية المحاكية. إذا كنت بحاجة إلى أن يطّلع زملاؤك في الفريق على التغييرات ويختبروها، يمكن Hosting إنشاء عناوين URL مؤقتة قابلة للمشاركة لمعاينة موقعك الإلكتروني. تتوفّر أيضًا عملية دمج مع GitHub لتنفيذ عمليات النشر من طلب سحب.
قبل البدء
أكمِل الخطوات المُدرَجة في Hosting صفحة "البدء"، وتحديدًا المهام التالية:
- ثبِّت أحدث إصدار من واجهة سطر الأوامر Firebase أو حدِّثها.
- اربط دليل المشروع المحلي (الذي يحتوي على محتوى تطبيقك) بمشروعك على Firebase.
يمكنك اختياريًا نشر محتوى Hosting وإعدادات تطبيقك، ولكن ليس ذلك شرطًا أساسيًا لتنفيذ الخطوات الواردة في هذه الصفحة.
الخطوة 1: الاختبار على الجهاز
إذا كنت تريد إجراء تكرارات سريعة أو أن يتفاعل تطبيقك مع موارد مشروع الخلفية المحاكية، يمكنك اختبار محتوى Hosting وإعداداته محليًا. عند الاختبار محليًا، تعرض Firebase تطبيق الويب الخاص بك على عنوان URL مستضاف محليًا.
Hosting هو جزء من Firebase Local Emulator Suite، ما يتيح لتطبيقك التفاعل مع محتوى Hosting المحاكى وإعداداته، بالإضافة إلى موارد مشروعك المحاكى (الدوال وقواعد البيانات والقواعد) بشكل اختياري.
(اختياري) يتفاعل تطبيقك المستضاف محليًا تلقائيًا مع موارد المشروع الحقيقية، وليس المحاكية (مثل الدوال وقاعدة البيانات والقواعد وما إلى ذلك). يمكنك بدلاً من ذلك ربط تطبيقك اختياريًا لاستخدام أي موارد محاكية للمشروع قمت بإعدادها. مزيد من المعلومات: Realtime Database | Cloud Firestore | Cloud Functions
من جذر دليل مشروعك المحلي، نفِّذ الأمر التالي:
firebase emulators:start
افتح تطبيق الويب على عنوان URL المحلي الذي تعرضه واجهة سطر الأوامر (عادةً
http://localhost:5000
).لتعديل عنوان URL المحلي وإضافة التغييرات، أعِد تحميل المتصفّح.
الاختبار من الأجهزة المحلية الأخرى
لا تستجيب المحاكيات تلقائيًا إلا للطلبات الواردة من localhost
. هذا يعني أنّه سيكون بإمكانك الوصول إلى المحتوى المستضاف من متصفّح الويب على جهاز الكمبيوتر، ولكن ليس من الأجهزة الأخرى على شبكتك. إذا أردت إجراء الاختبار من أجهزة محلية أخرى، اضبط firebase.json
على النحو التالي:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
الخطوة 2: المعاينة والمشاركة
إذا كنت تريد أن يرى الآخرون التغييرات التي أجريتها على تطبيق الويب قبل نشره، يمكنك استخدام قنوات المعاينة.
بعد النشر إلى قناة إصدار تجريبي، تعرض Firebase تطبيق الويب الخاص بك على "عنوان URL للإصدار التجريبي"، وهو عنوان URL مؤقت يمكن مشاركته. عند استخدام عنوان URL للمعاينة، يتفاعل تطبيقك على الويب مع الخلفية الحقيقية لجميع موارد المشروع (باستثناء أي دوال "مثبّتة" في إعدادات عمليات إعادة الكتابة).
يُرجى العِلم أنّه على الرغم من صعوبة تخمين عناوين URL الخاصة بالمعاينة (لأنّها تتضمّن تجزئة عشوائية)، إلا أنّها متاحة للجميع. وبالتالي، يمكن لأي شخص يعرف عنوان URL الوصول إليه.
من جذر دليل مشروعك المحلي، نفِّذ الأمر التالي:
firebase hosting:channel:deploy CHANNEL_ID
استبدِل CHANNEL_ID بسلسلة بدون مسافات (مثلاً،
feature_mission-2-mars
). سيتم استخدام هذا المعرّف لإنشاء عنوان URL للمعاينة مرتبط بقناة المعاينة.افتح تطبيق الويب على عنوان URL الخاص بالمعاينة الذي تعرضه واجهة سطر الأوامر. سيبدو على النحو التالي:
PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app
لتعديل عنوان URL الخاص بالمعاينة باستخدام التغييرات، نفِّذ الأمر نفسه مرة أخرى. احرص على تحديد
CHANNEL_ID
نفسه في الأمر.
يمكنك الاطّلاع على معلومات حول إدارة قنوات المعاينة، بما في ذلك كيفية ضبط تاريخ انتهاء صلاحية قناة.
يتوافق Firebase Hosting مع GitHub Action الذي ينشئ عنوان URL للمعاينة ويعدّله تلقائيًا عند إرسال التغييرات إلى طلب سحب. تعرَّف على كيفية إعداد هذا الإجراء على GitHub واستخدامه.
الخطوة 3: نشر الإصدار العلني
عندما تكون مستعدًا لمشاركة التغييرات مع العالم، يمكنك نشر Hosting المحتوى والإعدادات في قناتك المباشرة. يوفّر Firebase خيارَين مختلفَين لهذه الخطوة حسب حالة الاستخدام (راجِع الخيارَين أدناه).
الخيار 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: النشر من دليل مشروعك المحلي إلى قناتك المباشرة
يمنحك هذا الخيار المرونة اللازمة لتعديل الإعدادات الخاصة بالقناة المباشرة أو النشر حتى إذا لم تستخدم قناة إصدار تجريبي.
من جذر دليل مشروعك المحلي، نفِّذ الأمر التالي:
firebase deploy --only hosting
عرض التغييرات (الخطوة التالية)
الخطوة 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 وحركة بيانات غير SSL).
حذف الملفات
في Firebase Hosting، الطريقة الأساسية لحذف الملفات المحدّدة من موقع إلكتروني تم نشره هي حذف الملفات محليًا، ثم إعادة نشرها.
الخطوات التالية
يمكنك الدمج مع GitHub وتكرار المحتوى الذي تمت معاينته من خلال إعداد GitHub Action.
تعرَّف على المزيد من إمكانات الاستضافة:
يمكنك الاطّلاع على المستندات الكاملة الخاصة بواجهة سطر الأوامر Firebase.
استعِدّ لإطلاق تطبيقك باتّباع الخطوات التالية:
- إعداد تنبيهات الميزانية لمشروعك في وحدة تحكّم Google Cloud
- يمكنك الاطّلاع على لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على صورة شاملة عن استخدام مشروعك لعدة خدمات من Firebase. يمكنك أيضًا الانتقال إلى Hosting لوحة بيانات الاستخدام للحصول على معلومات أكثر تفصيلاً حول الاستخدام.
- راجِع قائمة التحقّق من إطلاق Firebase.