Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

منابع پروژه را در چندین سایت به اشتراک بگذارید

می توانید یک یا چند سایت میزبانی Firebase را در یک پروژه Firebase تنظیم کنید. از آنجا که همه سایت ها در یک پروژه Firebase هستند ، همه سایت ها می توانند به منابع دیگر Firebase پروژه دسترسی داشته باشند.

با راه اندازی چندین سایت میزبانی در یک پروژه Firebase ، می توانید منابع Firebase را به راحتی بین سایتها و برنامه های مرتبط به اشتراک بگذارید. به عنوان مثال ، اگر وبلاگ ، پنل مدیریت و برنامه عمومی خود را به عنوان سایتهای جداگانه در یک پروژه Firebase تنظیم کنید ، همه آنها می توانند پایگاه داده کاربر یکسان Firebase Authentication را به اشتراک بگذارند ، در حالی که دامنه یا محتوای منحصر به فرد خود را دارند.

مرحله 1: به روز رسانی نسخه فایربیس CLI خود را

دسترسی بیشتر در حال حاضر فایربیس میزبانی ویژگی های به روز رسانی به آخرین نسخه از فایربیس CLI .

مرحله 2: اضافه کردن سایت های اضافی

با استفاده از یکی از روشهای زیر ، سایتهای اضافی را به پروژه Firebase اضافه کنید:

  • با استفاده از گردش کار در صفحه میزبانی از کنسول فایربیس

  • استفاده از دستور فایربیس CLI: firebase hosting:sites:create SITE_ID

  • با استفاده از API REST میزبانی: projects.sites.create

برای هر یک از این روش ها، شما یک مشخص SITE_ID استفاده شده است که برای ساخت زیر دامنه به طور پیش فرض فایربیس-مشروط برای سایت:

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

از آنجا که SITE_ID برای این آدرس ها استفاده می شود، ID سایت دارای شرایط زیر است:

  • باید یک برچسب نام میزبان معتبر، به معنی آن نمی تواند . ، _ ، و غیره
  • باید 30 نویسه یا کمتر باشد
  • باید از نظر جهانی در Firebase منحصر به فرد باشد

به هر سایت، شما همچنین می توانید به صورت اختیاری اضافه کردن دامنه سفارشی برای خدمت به همان محتوا و پیکربندی به URL های متعدد.

حذف یک سایت ثانویه

با استفاده از یکی از روشهای زیر ، سایتهای ناخواسته را از پروژه Firebase حذف کنید:

  • با استفاده از گردش کار در صفحه میزبانی از کنسول فایربیس

  • استفاده از دستور فایربیس CLI: firebase hosting:sites:delete SITE_ID

  • با استفاده از API REST میزبانی: projects.sites.delete

توجه داشته باشید که شما می توانید سایت به طور پیش فرض، است که به همین حذف کنید SITE_ID به عنوان شناسه پروژه فایربیس خود را.

مرحله 3: تنظیم اهداف استقرار برای سایت های خود را

وقتی چندین سایت دارید و دستورات استقرار Firebase CLI را اجرا می کنید ، CLI به راهی برای برقراری ارتباط نیاز دارد که باید تنظیمات مربوط به هر سایت را پیاده سازی کند. با هدف استقرار شما منحصر به فرد می توانید با یک شناسایی یک سایت خاص TARGET_NAME در خود firebase.json فایل پیکربندی و در خود دستورات فایربیس CLI برای تست و یا استقرار به سایت شما.

برای ایجاد یک هدف استقرار و اعمال TARGET_NAME به یک سایت میزبانی وب، اجرای فرمان CLI زیر از ریشه از پوشه پروژه خود قرار دهید:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

پارامترها در کجا هستند:

  • TARGET_NAME - یک نام منحصر به فرد (که شما خودتان را تعریف کرده اید) برای سایت میزبانی وب که شما در حال استقرار به

  • RESOURCE_IDENTIFIER - در SITE_ID برای سایت میزبانی وب در پروژه فایربیس شما در این لیست

برای مثال، اگر شما دو سایت (ایجاد کرده اید 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
محتوای میزبانی و پیکربندی سایت میزبانی مشخص شده را در یک نشانی اینترنتی محلی میزبانی می کند