يمكنك إعداد موقع واحد أو أكثر من مواقع استضافة Firebase في مشروع Firebase واحد. وبما أن جميع المواقع موجودة في نفس مشروع Firebase، فيمكن لجميع المواقع الوصول إلى موارد Firebase الأخرى للمشروع.
- كل موقع لديه تكوين الاستضافة الخاص به.
- يستضيف كل موقع مجموعته الخاصة من المحتوى.
- يمكن أن يحتوي كل موقع على نطاق مرتبط واحد أو أكثر.
من خلال إعداد مواقع استضافة متعددة ضمن مشروع Firebase نفسه، يمكنك مشاركة موارد Firebase بسهولة أكبر بين المواقع والتطبيقات ذات الصلة. على سبيل المثال، إذا قمت بإعداد مدونتك ولوحة الإدارة والتطبيق العام كمواقع فردية في نفس مشروع Firebase، فيمكنهم جميعًا مشاركة نفس قاعدة بيانات مستخدم مصادقة Firebase، مع الحصول أيضًا على نطاقات أو محتوى فريد خاص بهم.
الخطوة 1 : قم بتحديث إصدار Firebase CLI الخاص بك
يمكنك الوصول إلى أحدث ميزات استضافة Firebase عن طريق التحديث إلى أحدث إصدار من Firebase CLI .
الخطوة 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 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 مستضاف محليًا |