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

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

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

  • پیکربندی میزبانی برای هر یک از سایت های میزبانی شما
  • دارایی های ثابت از فهرست پروژه شما برای هر یک از سایت های میزبانی شما
  • قوانین امنیتی به اشتراک گذاشته شده توسط چندین نمونه پایگاه داده بیدرنگ یا چند سطل فضای ذخیره سازی ابری

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

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

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

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

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

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

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

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

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

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

    • برای سایت های میزبانی Firebase، hosting استفاده کنید.
  • 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

اهداف استقرار را برای فضای ذخیره سازی ابری یا پایگاه داده بیدرنگ تنظیم کنید

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

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

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

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

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

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

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

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 شما دارای دو سایت میزبانی و سه سطل فضای ذخیره‌سازی ابری است (که قوانین امنیتی یکسانی دارند)، فایل 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
تمام منابع یا سایت میزبانی را از هدف مشخص شده حذف می کند

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

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

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

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

درباره پیکربندی و استفاده از مجموعه شبیه ساز محلی Firebase بیشتر بیاموزید.

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

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

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