اهداف را مستقر کنید

اهداف استقرار، شناسه‌های نام کوتاهی هستند (که خودتان تعریف می‌کنید) برای منابع Firebase در پروژه Firebase، مانند یک سایت Hosting با دارایی‌های ثابت منحصر به فرد یا گروهی از نمونه‌های Realtime Database که قوانین امنیتی یکسانی دارند.

اهداف توسعه زمانی مفید هستند که چندین سایت Hosting ، چندین سطل Cloud Storage یا چندین نمونه Realtime Database دارید. با استقرار اهداف، Firebase CLI می‌تواند تنظیمات را در یک منبع Firebase خاص یا گروهی از منابع در پروژه شما مستقر کند، مانند:

  • پیکربندی میزبانی برای هر یک از سایت های Hosting شما
  • دارایی های ثابت از فهرست پروژه شما برای هر یک از سایت های Hosting شما
  • قوانین امنیتی به اشتراک گذاشته شده توسط چندین نمونه Realtime Database یا چند سطل Cloud Storage

برای تنظیم یک هدف استقرار:

  1. یک TARGET_NAME در منبع Firebase هدفمند یا گروهی از منابع Firebase اعمال کنید .
  2. در فایل firebase.json خود، هنگام پیکربندی تنظیمات برای هر منبع یا گروهی از منابع ، به TARGET_NAME مرتبط ارجاع دهید .

هنگامی که فرمان های Firebase CLI را اجرا می کنید (مانند firebase deployFirebase CLI هر TARGET_NAME با منابع Firebase مرتبط خود جفت می کند. سپس CLI تنظیمات مربوط به هر منبع را به پروژه Firebase شما ارسال می کند.

اهداف استقرار را برای منابع Firebase خود تنظیم کنید

با استفاده از Firebase CLI، یک TARGET_NAME (شناسه نام کوتاهی که خودتان تعریف می‌کنید) به یک منبع Firebase یا گروهی از منابع Firebase اعمال کنید. Firebase از اهداف استقرار برای موارد زیر پشتیبانی می کند:

تنظیمات برای استقرار اهداف در فایل .firebaserc در فهرست پروژه شما ذخیره می شود، بنابراین شما فقط باید یک بار در هر پروژه اهداف استقرار را تنظیم کنید.

اهداف استقرار را برای Hosting تنظیم کنید

برای ایجاد یک Deploy target و اعمال TARGET_NAME در یک سایت Hosting ، دستور CLI زیر را اجرا کنید:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

جایی که پارامترها عبارتند از:

  • TYPE - نوع منبع Firebase مربوطه

    • برای سایت های Firebase Hosting ، از hosting استفاده کنید.
  • TARGET_NAME - یک نام منحصر به فرد برای سایت Hosting که شما در آن مستقر می شوید

  • RESOURCE_IDENTIFIER - SITE_ID برای سایت Hosting که در پروژه Firebase شما فهرست شده است

برای مثال، اگر دو سایت ( myapp-blog و myapp-app ) در پروژه Firebase خود ایجاد کرده‌اید، می‌توانید با اجرای دستورات زیر یک TARGET_NAME (به ترتیب blog و app ) را برای هر سایت اعمال کنید:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

اهداف استقرار را برای Cloud Storage یا Realtime Database تنظیم کنید

برای ایجاد یک هدف استقرار و اعمال یک TARGET_NAME در مجموعه‌ای از منابع Cloud Storage یا Realtime Database ، دستور CLI زیر را اجرا کنید:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

جایی که پارامترها عبارتند از:

  • TYPE - نوع منبع Firebase مربوطه

    • برای سطل‌های Cloud Storage ، از storage استفاده کنید.
    • برای نمونه های Realtime Database ، از database استفاده کنید.
  • TARGET_NAME - یک نام منحصر به فرد برای منبع یا گروهی از منابع که قوانین امنیتی را به اشتراک می گذارند

  • RESOURCE_IDENTIFIER - شناسه‌های منابعی که در پروژه Firebase فهرست شده‌اند (مانند نام‌های سطل ذخیره‌سازی یا شناسه‌های نمونه پایگاه داده) که همگی قوانین امنیتی یکسانی دارند.

برای مثال، می‌توانید TARGET_NAME main را در گروهی از سه سطل Cloud Storage منطقه‌ای (که همگی قوانین امنیتی یکسانی دارند) با اجرای دستور زیر اعمال کنید:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

توجه داشته باشید که myproject.appspot.com شناسه سطل پیش‌فرض است، در حالی که myproject-eu و myproject-ja دو سطل اضافی هستند که در پروژه Firebase ایجاد شده‌اند.

فایل firebase.json خود را برای استفاده از Deploy targets پیکربندی کنید

پس از اینکه اهداف استقرار را برای منابع Firebase خود تنظیم کردید، به هر TARGET_NAME اعمال شده در فایل پیکربندی firebase.json خود اشاره کنید:

  1. آرایه ای از اشیاء پیکربندی را برای هر منبع Firebase TYPE ( hosting ، storage ، یا database ) ایجاد کنید.
  2. در آرایه ها، target را مشخص کنید (با استفاده از TARGET_NAME ) و تنظیمات خود را برای منبع Firebase مرتبط یا گروهی از منابع تعریف کنید.

در ادامه مثال‌های بالا، جایی که پروژه Firebase شما دارای دو سایت Hosting و سه سطل Cloud Storage است (که قوانین امنیتی یکسانی دارند)، فایل 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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

اگر چندین پیکربندی برای منابع خود دارید، می توانید چندین هدف مستقر ایجاد کنید و هر کدام را در فایل firebase.json مشخص کنید. هنگامی که firebase deploy را اجرا می کنید، همه منابع مرتبط با هم مستقر می شوند.

اهداف استقرار را مدیریت کنید

تنظیمات برای استقرار اهداف در فایل .firebaserc در فهرست پروژه شما ذخیره می شود. می توانید با اجرای هر یک از دستورات زیر از ریشه دایرکتوری پروژه، اهداف استقرار پروژه خود را مدیریت کنید.

فرمان توضیحات
firebase target اهداف استقرار را برای فهرست پروژه فعلی شما فهرست می کند
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
منبعی را از هدفی که به آن اختصاص داده شده است حذف می کند
firebase target:clear \
TYPE TARGET_NAME
تمام منابع یا سایت Hosting از هدف مشخص شده حذف می کند

دستورات target:remove و target:clear به طور خودکار تنظیمات deploy target را در فایل .firebaserc در فهرست پروژه شما به روز می کنند.

قبل از استقرار به صورت محلی تست کنید

هر یک از دستورات زیر را از ریشه دایرکتوری پروژه خود اجرا کنید.

فرمان توضیحات
firebase emulators:start تمام منابع پیکربندی شده در فهرست پروژه شما را شبیه سازی می کند
firebase emulators:start \
--only hosting: TARGET_NAME
فقط محتوای Hosting و پیکربندی سایت Hosting مشخص شده را شبیه سازی می کند
firebase emulators:start \
--only storage: TARGET_NAME
فقط فایل قوانین را برای هدف مشخص شده Cloud Storage شبیه سازی می کند
firebase emulators:start \
--only database: TARGET_NAME
فقط فایل قوانین را برای هدف Realtime Database مشخص شده شبیه سازی می کند

درباره پیکربندی و استفاده از Firebase Local Emulator Suite بیشتر بیاموزید.

منابع خاص Firebase را مستقر کنید

هر یک از دستورات زیر را از ریشه دایرکتوری پروژه خود اجرا کنید.

فرمان توضیحات
firebase deploy انتشاری از تمام منابع قابل استقرار در فهرست پروژه شما ایجاد می کند
firebase deploy \
--only hosting: TARGET_NAME
فقط محتوای Hosting و پیکربندی سایت Hosting مشخص شده را در کانال زنده سایت مستقر می کند.
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
فقط محتوای Hosting و پیکربندی سایت Hosting مشخص شده را در یک کانال پیش نمایش برای سایت مستقر می کند.
firebase deploy \
--only storage: TARGET_NAME
فقط فایل قوانین را برای هدف مشخص شده Cloud Storage مستقر می کند
firebase deploy \
--only database: TARGET_NAME
فقط فایل قوانین را برای هدف مشخص شده Realtime Database مستقر می کند