Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

يمكنك إعداد موقع أو أكثر من مواقع استضافة 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

  • استخدام REST API استضافة: projects.sites.create

لكل من هذه الأساليب، عليك تحديد SITE_ID الذي يستخدم لبناء النطاقات الفرعية الافتراضية المشروطة Firebase للموقع:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

لأن SITE_ID يستخدم لهذه العناوين، معرف الموقع لديه الشروط التالية:

  • يجب أن تكون تسمية اسم المضيف صالحة، وهذا يعني أنه لا يمكن أن تحتوي على . ، _ ، الخ
  • يجب ألا يزيد عدد الأحرف عن 30 حرفًا
  • يجب أن يكون فريدًا عالميًا داخل Firebase

إلى كل موقع، يمكنك أيضا اختياريا إضافة نطاقات مخصصة لخدمة نفس المحتوى والتكوين إلى عناوين URL متعددة.

احذف موقع ثانوي

احذف المواقع غير المرغوب فيها من مشروع Firebase باستخدام إحدى الطرق التالية:

  • استخدم سير العمل في الصفحة استضافة من وحدة التحكم Firebase

  • استخدام الأمر Firebase CLI: firebase hosting:sites:delete SITE_ID

  • استخدام REST API استضافة: projects.sites.delete

ملاحظة أنه لا يمكنك حذف الموقع الافتراضي، التي لديها نفس SITE_ID كما ID مشروع Firebase الخاص بك.

الخطوة 3: قم بإعداد أهداف نشر لمواقع الويب

عندما يكون لديك مواقع متعددة وتقوم بتشغيل أوامر نشر Firebase CLI ، يحتاج CLI إلى طريقة للإبلاغ عن الإعدادات التي يجب نشرها في كل موقع. مع أهداف نشر يمكنك تحديد فريد موقع معين مع TARGET_NAME في حياتك firebase.json ملف التكوين وفي حياتك الأوامر CLI 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 يحاكي محتوى استضافة وتكوين استضافة الموقع الافتراضي في 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 مستضاف محليًا