هدفهای استقرار شناسههای نام کوتاهی هستند (که خودتان تعریف میکنید) برای منابع Firebase در پروژه Firebase شما، مثل Hosting سایتی با داراییهای ایستای یکتا یا گروهی از Realtime Database نمونه که قوانین امنیتی یکسانی دارند.
هدفهای استقرار زمانی مفید هستند که چندین سایت Hosting، چندین مخزن Cloud Storage، یا چندین نمونه Realtime Database داشته باشید. با هدفهای استقرار، Firebase CLI میتواند تنظیمات را در منبع Firebase خاص یا گروهی از منابع در پروژه شما مستقر کند، ازجمله:
- پیکربندی میزبانی برای هریک از سایتهای Hosting شما
- داراییهای ایستا از دایرکتوری پروژه شما برای هریک از Hosting سایتهایتان
- قوانین امنیتی که توسط چندین نمونه Realtime Database یا چندین باکت Cloud Storage همرسانی شده است
برای راهاندازی هدف استقرار:
TARGET_NAMEرا روی منبع Firebase هدفیابیشده یا گروه منابع Firebase اعمال کنید.- در فایل
firebase.json، وقتی تنظیمات هر منبع یا گروه منابع را پیکربندی میکنید، بهTARGET_NAMEمنسوب ارجاع دهید.
وقتی فرمانهای CLI Firebase (مثل
firebase deploy) را اجرا میکنید، Firebase CLI هر TARGET_NAME را با منابع Firebase مرتبط آن جفت میکند. سپس CLI تنظیمات هر منبع را به پروژه Firebase شما منتقل میکند.
راهاندازی هدفهای استقرار برای منابع Firebase
بااستفاده از Firebase CLI، یک TARGET_NAME (شناسه نام کوتاه که خودتان تعریف میکنید) را به منبع Firebase یا گروهی از منابع Firebase اعمال کنید.
Firebase از اهداف استقرار برای موارد زیر پشتیبانی میکند:
تنظیمات هدفهای استقرار در فایل .firebaserc در
دایرکتوری پروژه شما ذخیره میشود، بنابراین فقط یکبار برای هر پروژه
باید هدفهای استقرار را تنظیم کنید.
راهاندازی هدفهای استقرار برای Hosting
برای ایجاد هدف استقرار و اعمال TARGET_NAME در سایت Hosting،
دستور CLI زیر را اجرا کنید:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
که در آن پارامترها عبارتاند از:
TYPE — نوع منبع Firebase مربوطه
- برای Firebase Hosting سایت، از
hostingاستفاده کنید.
- برای Firebase Hosting سایت، از
TARGET_NAME — نامی منحصربهفرد برای سایت Hosting که در آن مستقر میشوید
RESOURCE_IDENTIFIER —
SITE_IDبرای سایت Hosting همانطور که در پروژه Firebase شما فهرست شده است
برای مثال، اگر در پروژه Firebase خود دو سایت ایجاد کردهاید
(myapp-blog و myapp-app)، میتوانید با اجرای
فرمانهای زیر، 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استفاده کنید.
- برای Cloud Storage مخزن، از
TARGET_NAME — نامی منحصربهفرد برای منبع یا گروه منابعی که قوانین امنیتی را همرسانی میکنند
RESOURCE_IDENTIFIER — شناسههای منابع همانطور که در پروژه Firebase شما فهرست شده است (مانند نامهای مخزن ذخیرهسازی یا شناسههای نمونه پایگاه داده) که همه قوانین امنیتی یکسانی دارند
برای مثال، میتوانید TARGET_NAME main را به گروهی از سه
دسته Cloud Storage منطقهای (که همه قوانین امنیتی یکسانی دارند)
با اجرای فرمان زیر اعمال کنید:
firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja
توجه داشته باشید که myproject.firebasestorage.app شناسه باکت پیشفرض است، درحالیکه myproject-eu و myproject-ja دو باکت اضافی هستند که در پروژه Firebase ایجاد شدهاند.
فایل firebase.json را برای استفاده از هدفهای استقرار پیکربندی کنید
پساز تنظیم کردن هدفهای استقرار برای منابع Firebase، به هریک از
TARGET_NAME اعمالشده در
firebase.json فایل پیکربندی ارجاع دهید:
- برای هر منبع Firebase
TYPE(hosting،storage، یاdatabase) مجموعهای از اشیای پیکربندی ایجاد کنید. - در آرایهها،
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 \
|
منبعی را از هدفی که به آن اختصاص داده شده است برمیدارد |
firebase target:clear \
|
همه منابع یا سایت Hosting را از هدف مشخصشده برمیدارد |
فرمانهای target:remove و target:clear بهطور خودکار تنظیمات هدف استقرار را در فایل .firebaserc در دایرکتوری پروژه شما بهروزرسانی میکنند.
پیشاز پیادهسازی، بهصورت محلی آزمایش کنید
هریک از فرمانهای زیر را از ریشه فهرست راهنمای پروژه خود اجرا کنید.
| فرمان | شرح |
|---|---|
firebase emulators:start
|
همه منابع پیکربندیشده در دایرکتوری پروژه شما را شبیهسازی میکند |
firebase emulators:start \ |
فقط Hosting محتوا و پیکربندی Hosting سایت مشخصشده را شبیهسازی میکند |
firebase emulators:start \
|
فقط فایل قوانین را برای Cloud Storage هدف مشخصشده شبیهسازی میکند |
firebase emulators:start \
|
فقط فایل قوانین را برای هدف Realtime Database مشخصشده شبیهسازی میکند |
درباره پیکربندی و استفاده از Firebase Local Emulator Suite بیشتر بدانید.
استقرار منابع Firebase خاص
هریک از فرمانهای زیر را از ریشه فهرست راهنمای پروژه خود اجرا کنید.
| فرمان | شرح |
|---|---|
firebase deploy
|
نسخهٔ پخش همه منابع قابلپیادهسازی را در دایرکتوری پروژه شما ایجاد میکند |
firebase deploy \
|
فقط Hosting محتوا و پیکربندی Hosting سایت مشخصشده را در کانال زنده سایت مستقر میکند |
firebase hosting:channel:deploy CHANNEL_ID \ |
فقط محتوا و پیکربندی Hosting سایت Hosting مشخصشده را در کانال پیشنمایش برای سایت مستقر میکند |
firebase deploy \
|
فقط فایل قوانین را برای Cloud Storage هدف مشخصشده مستقر میکند |
firebase deploy \
|
فقط فایل قوانین را برای هدف Realtime Database مشخصشده مستقر میکند |