يمكنك إعداد موقع إلكتروني واحد أو أكثر لاستضافة Firebase في مشروع واحد على Firebase. نظرًا لأن جميع المواقع موجودة في نفس مشروع Firebase، يمكن لجميع المواقع الوصول إلى موارد Firebase الأخرى الخاصة بالمشروع.
- لكل موقع إلكتروني إعدادات استضافة خاصة به.
- يستضيف كل موقع إلكتروني مجموعته الخاصة من المحتوى.
- يمكن أن يكون لكل موقع إلكتروني واحد أو أكثر من النطاقات المرتبطة.
من خلال إعداد عدة مواقع استضافة ضمن مشروع Firebase نفسه، يمكنك مشاركة موارد Firebase بسهولة أكبر بين المواقع والتطبيقات ذات الصلة. على سبيل المثال، إذا أعددت مدونتك ولوحة المشرف والتطبيق العام كمواقع ويب فردية في مشروع Firebase نفسه، يمكن لجميع هذه التطبيقات مشاركة قاعدة بيانات مستخدم مصادقة Firebase نفسها، مع وجود نطاقات أو محتوى فريد في الوقت نفسه.
الخطوة 1: تحديث إصدار واجهة سطر الأوامر في Firebase
يمكنك الوصول إلى أحدث ميزات "استضافة Firebase" من خلال التحديث إلى أحدث إصدار من واجهة سطر الأوامر في Firebase.
الخطوة 2: إضافة مواقع إلكترونية أخرى
يمكنك إضافة مواقع إلكترونية أخرى إلى مشروع Firebase باستخدام إحدى الطرق التالية:
استخدِم سير العمل من خلال صفحة الاستضافة في وحدة تحكُّم Firebase.
استخدِم أمر Firebase CLI :
firebase hosting:sites:create SITE_ID
استخدام واجهة برمجة تطبيقات Hosting REST:
projects.sites.create
في كل طريقة من هاتَين الطريقتَين، عليك تحديد SITE_ID
يُستخدم لإنشاء النطاقات الفرعية التلقائية التي يوفّرها Firebase للموقع الإلكتروني:
SITE_ID.web.app
SITE_ID.firebaseapp.com
بما أنّه يتم استخدام SITE_ID
لعناوين URL هذه، يجب أن يستوفي رقم تعريف الموقع الإلكتروني المتطلبات التالية:
- يجب أن يكون تصنيف اسم مضيف صالحًا، ما يعني أنّه لا يمكن أن يحتوي على
.
أو_
أو غير ذلك. - يجب ألا يزيد عدد الأحرف عن 30 حرفًا
- يجب أن يكون فريدًا عالميًا ضمن Firebase
لكل موقع إلكتروني، يمكنك اختياريًا إضافة نطاقات مخصّصة لعرض المحتوى والإعداد نفسهما إلى عناوين URL متعددة.
حذف موقع إلكتروني ثانوي
احذف المواقع الإلكترونية غير المرغوب فيها من مشروع Firebase باستخدام إحدى الطرق التالية:
استخدِم سير العمل من خلال صفحة الاستضافة في وحدة تحكُّم Firebase.
استخدِم أمر Firebase CLI :
firebase hosting:sites:delete SITE_ID
استخدام واجهة برمجة تطبيقات Hosting REST:
projects.sites.delete
تجدر الإشارة إلى أنّه لا يمكنك حذف الموقع الإلكتروني التلقائي، الذي له نفس SITE_ID
مثل رقم تعريف مشروع Firebase.
الخطوة 3: إعداد نشر أهداف لمواقعك الإلكترونية
عندما تكون لديك عدة مواقع وتشغل أوامر نشر واجهة سطر الأوامر في Firebase، يحتاج
واجهة سطر الأوامر إلى طريقة لمعرفة الإعدادات التي يجب نشرها لكل
موقع إلكتروني. من خلال أهداف النشر، يمكنك تحديد موقع إلكتروني محدّد بشكل فريد باستخدام TARGET_NAME
في
ملف إعداد firebase.json
وفي أوامر واجهة سطر الأوامر في Firebase
لاختباره أو نشره على مواقعك الإلكترونية.
لإنشاء هدف نشر وتطبيق TARGET_NAME
على موقع استضافة، شغِّل أمر CLI التالي من جذر دليل المشروع:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
أماكن ظهور المَعلمات:
TARGET_NAME — اسم فريد (حددته بنفسك) لموقع المضيف الذي تنشر فيه
RESOURCE_IDENTIFIER:
SITE_ID
لموقع الاستضافة كما هو مُدرَج في مشروع Firebase
على سبيل المثال، إذا أنشأت موقعَين إلكترونيَّين (myapp-blog
وmyapp-app
) في مشروع Firebase، يمكنك تطبيق TARGET_NAME
فريد (blog
وapp
على التوالي) على كل موقع إلكتروني من خلال تنفيذ الأوامر التالية:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
يتم تخزين إعدادات النشرات المستهدفة في ملف .firebaserc
في دليل المشروع، لذا لا تحتاج سوى إلى إعداد أهداف النشر مرة واحدة لكل مشروع.
الخطوة 4: تحديد إعدادات الاستضافة لكل موقع إلكتروني
استخدِم TARGET_NAME
المطبَّقة على الموقع الإلكتروني عند تحديد إعدادات الاستضافة في ملف firebase.json
.
إذا كان ملف
firebase.json
يحدّد الإعدادات لعدة مواقع إلكترونية، استخدِم تنسيق مصفوفة:{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] }
إذا كان ملف
firebase.json
يحدّد الإعدادات لموقع إلكتروني واحد فقط، ليس من الضروري استخدام تنسيق مصفوفة:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
الخطوة 5: الاختبار محليًا ومعاينة التغييرات ونشرها على مواقعك الإلكترونية
شغِّل أيًا من الأوامر التالية من جذر دليل المشروع المحلي.
الطلب | الوصف |
---|---|
firebase emulators:start --only hosting |
يحاكي محتوى الاستضافة وإعدادات الموقع الإلكتروني للاستضافة default على عنوان URL مستضاف محليًا. |
firebase emulators:start --only hosting:TARGET_NAME |
يحاكي محتوى الاستضافة وإعدادات موقع الاستضافة الإلكتروني المحدّد على عنوان URL مستضاف محليًا. |
firebase hosting:channel:deploy \ |
تتيح هذه السياسة نشر محتوى "الاستضافة" وضبط إعدادات الموقع الإلكتروني للاستضافة تلقائي على عنوان URL للمعاينة. |
firebase hosting:channel:deploy \ |
نشر محتوى الاستضافة وضبط إعدادات موقع الاستضافة الإلكتروني المحدّد على عنوان URL للمعاينة |
firebase deploy --only hosting |
يتم نشر محتوى الاستضافة وإعداداته في القناة المباشرة لجميع مواقع الاستضافة التي تم ضبطها في
firebase.json .
|
firebase deploy --only hosting:TARGET_NAME |
نشر محتوى الاستضافة وإعداداته في القناة المباشرة الخاصة بموقع الاستضافة الإلكتروني المحدّد |
الطلب | الوصف |
---|---|
(لا يُنصح به، ولكن استخدِم emulators:start بدلاً منه)firebase serve --only hosting
|
عرض محتوى الاستضافة وإعدادات الموقع الإلكتروني المستضاف default على عنوان URL مستضاف محليًا |
(لا يُنصح به، ولكن استخدِم emulators:start بدلاً منه)firebase serve --only hosting:TARGET_NAME
|
عرض محتوى الاستضافة وإعدادات موقع الاستضافة الإلكتروني المحدّد على عنوان URL مستضاف محليًا |