يمكنك إعداد موقع أو أكثر من مواقع استضافة Firebase في مشروع Firebase واحد. نظرًا لأن جميع المواقع موجودة في نفس مشروع Firebase ، يمكن لجميع المواقع الوصول إلى موارد Firebase الأخرى الخاصة بالمشروع.
- كل موقع له تكوين الاستضافة الخاص به.
- يستضيف كل موقع مجموعته الخاصة من المحتوى.
- يمكن أن يكون لكل موقع واحد أو أكثر من المجالات المرتبطة .
من خلال إعداد مواقع استضافة متعددة ضمن مشروع Firebase نفسه ، يمكنك مشاركة موارد Firebase بسهولة أكبر بين المواقع والتطبيقات ذات الصلة. على سبيل المثال ، إذا قمت بإعداد مدونتك ولوحة الإدارة والتطبيق العام الخاص بك كمواقع فردية في نفس مشروع Firebase ، فيمكنهم جميعًا مشاركة قاعدة بيانات مستخدم Firebase Authentication ، مع امتلاك نطاقاتهم أو محتوياتهم الفريدة أيضًا.
الخطوة 1 : تحديث إصدار Firebase CLI
قم بالوصول إلى أحدث ميزات استضافة Firebase عن طريق التحديث إلى أحدث إصدار من Firebase CLI .
الخطوة 2 : أضف مواقع إضافية
أضف مواقع إضافية إلى مشروع Firebase باستخدام إحدى الطرق التالية:
استخدم سير العمل في صفحة الاستضافة بوحدة تحكم Firebase
استخدم أمر Firebase CLI:
firebase hosting:sites:create SITE_ID
استخدم Hosting REST API:
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 API:
projects.sites.delete
لاحظ أنه لا يمكنك حذف الموقع الافتراضي ، الذي له نفس SITE_ID
مثل معرف مشروع Firebase.
الخطوة 3 : قم بإعداد أهداف النشر لمواقعك
عندما يكون لديك مواقع متعددة وتقوم بتشغيل أوامر نشر Firebase CLI ، يحتاج CLI إلى طريقة للإبلاغ عن الإعدادات التي يجب نشرها في كل موقع. باستخدام أهداف النشر ، يمكنك تحديد موقع معين بشكل فريد باستخدام TARGET_NAME
في ملف تكوين firebase.json
وفي أوامر Firebase CLI للاختبار أو النشر في مواقعك.
لإنشاء هدف نشر وتطبيق 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 | يحاكي محتوى الاستضافة وتكوين موقع الاستضافة الافتراضي على عنوان 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 | يقدم محتوى الاستضافة وتكوين موقع الاستضافة الافتراضي على عنوان URL مستضاف محليًا |
(غير مستحسن ، استخدم emulators:start بدلاً من ذلك)firebase serve --only hosting: TARGET_NAME | يقدم محتوى الاستضافة وتكوين موقع الاستضافة المحدد على عنوان URL مستضاف محليًا |