مشاركة موارد المشروع عبر مواقع متعددة

يمكنك إعداد موقع واحد أو أكثر من مواقع استضافة 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_IDENTIFIERSITE_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 \
CHANNEL_ID
ينشر محتوى الاستضافة وتكوين موقع الاستضافة الافتراضي على عنوان URL للمعاينة
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
ينشر محتوى الاستضافة وتكوين موقع الاستضافة المحدد على عنوان 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 مستضاف محليًا