مانیفست افزونه ها فهرستی از نمونه های برنامه افزودنی و پیکربندی های آنها است. با مانیفست، می توانید:
- پیکربندی برنامه های افزودنی خود را با دیگران به اشتراک بگذارید
- پیکربندی برنامههای افزودنی خود را بین پروژههای مختلف کپی کنید (مانند پروژه مرحلهای تا پروژه تولیدتان)
- همه برنامه های افزودنی خود را به یکباره مستقر کنید
- نحوه کار برنامه های افزودنی خود را با استفاده از Firebase Local Emulator Suite آزمایش کنید
- پیکربندی برنامه های افزودنی خود را به کنترل منبع متعهد کنید
- برنامه های افزودنی را در خط لوله CI/CD خود قرار دهید
مانیفست افزونه دو بخش دارد:
بخش
extensions
firebase.json
شما، که نقشهای از شناسه نمونه به مرجع نسخه برنامه افزودنی است. به عنوان مثال:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
فایلهای
.env
حاوی پیکربندی برای هر یک از نمونههای برنامه افزودنی شما، درextensions/
زیر فهرست راهنمای پروژه Firebase شما. به عنوان مثال، نمونه ای ازstorage-resize-images
ممکن است یک فایل.env
مانند شکل زیر داشته باشد:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
یک مانیفست پسوند ایجاد کنید
سه راه برای ساخت مانیفست پسوند وجود دارد:
- مانیفست برنامه های افزودنی خود را با Firebase CLI مدیریت کنید
- پیکربندی برنامه های افزودنی پروژه را صادر کنید
- فایل های مانیفست را به صورت دستی ویرایش کنید
دو روش اول در زیر توضیح داده شده است.
مانیفست برنامه های افزودنی خود را با Firebase CLI مدیریت کنید
شما می توانید اکثر دستورات ext:
Firebase CLI را با گزینه --local
برای به روز رسانی مانیفست برنامه های افزودنی بدون تغییر پیکربندی فعلی پروژه اجرا کنید.
به عنوان مثال:
firebase ext:install --local firebase/firestore-bigquery-export
اجرای دستور بالا از شما می خواهد که آخرین نسخه افزونه firebase/firestore-bigquery-export
را پیکربندی کنید و پیکربندی را در مانیفست ذخیره کنید، اما پیکربندی را در پروژه شما پیاده نمی کند.
در اینجا چند نمونه دیگر از دستوراتی وجود دارد که مانیفست برنامههای افزودنی را تغییر میدهند:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
پیکربندی برنامه های افزودنی پروژه را صادر کنید
برای ذخیره پیکربندی برنامه های افزودنی فعلی پروژه در مانیفست، موارد زیر را انجام دهید:
- اگر قبلاً این کار را نکردهاید، Firebase CLI را راهاندازی کنید
- از یک درخواست پوسته، به دایرکتوری پروژه تغییر دهید. (دایرکتوری پروژه شما حاوی فایل
firebase.json
است). - دستور
ext:export
را اجرا کنید:firebase ext:export
دستور ext:export
یک بخش extensions
به فایل firebase.json
اضافه می کند. علاوه بر این، دستور ext:export
برای هر نمونه پسوندی که نصب کردهاید، یک دایرکتوری extensions
حاوی یک فایل .env
ایجاد میکند. این فایل ها شامل پارامترهای پیکربندی برای هر نمونه هستند.
پیکربندی برنامه های افزودنی را با Firebase Local Emulator Suite آزمایش کنید
هنگامی که چند نمونه برنامه افزودنی را به مانیفست برنامههای افزودنی خود اضافه کردید، میتوانید آنها را با استفاده از Local Emulator Suite آزمایش کنید.
Local Emulator Suite را راه اندازی کنید :
- برای اجرای تعاملی Emulator Suite، اجرا کنید:
firebase emulators:start
- برای اجرای Emulator Suite و اجرای یک اسکریپت آزمایشی، اجرا کنید:
firebase emulators:exec my-test.sh
- برای اجرای تعاملی Emulator Suite، اجرا کنید:
اکنون، اگر نمونه های برنامه افزودنی را در مانیفست خود فهرست کنید، Local Emulator Suite کد منبع آن برنامه های افزودنی را در ~/.cache/firebase/extensions
دانلود می کند. پس از دانلود، Local Emulator Suite شروع میشود و میتوانید هر یک از عملکردهای فعال در پسزمینه برنامههای افزودنی را فعال کنید و برنامه خود را به مجموعه Emulator متصل کنید تا ادغام آنها را با برنامه خود آزمایش کنید.
یک پیکربندی افزونه را در یک پروژه مستقر کنید
هنگامی که چند نمونه برنامه افزودنی را به مانیفست برنامه افزودنی خود اضافه کردید، می توانید آن را با استفاده از Firebase CLI در یک پروژه مستقر کنید. وقتی با یک مانیفست برنامههای افزودنی مستقر میشوید، همه نمونههای برنامه افزودنی موجود در مانیفست را به یکباره نصب، بهروزرسانی و پیکربندی میکنید.
برای استقرار مانیفست افزونه:
- از یک درخواست پوسته، به دایرکتوری که حاوی پیکربندی پسوندهای ذخیره شده است تغییر دهید. (این دایرکتوری حاوی
firebase.json
است. اگر فقطext:export
اجرا کرده اید، در حال حاضر در دایرکتوری درستی هستید.) - دستور
deploy
را اجرا کنید. اگر میخواهید افزونهها را در پروژهای غیر از پروژه فعلی مستقر کنید،--project=
نیز مشخص کنید:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
دستور deploy
هر پیکربندی نمونه را تأیید میکند، از شما میپرسد که آیا میخواهید نمونههای برنامه افزودنی را که در firebase.json
فهرست نشدهاند را از پروژه مقصد خود حذف کنید، و سپس همه نمونههای برنامه افزودنی خود را مستقر کنید.
تنظیمات برنامه افزودنی خاص پروژه
تنظیمات افزونه های ذخیره شده را می توان برای استقرار در چندین پروژه مختلف استفاده کرد: به عنوان مثال، یک پروژه مرحله بندی و یک پروژه تولید. هنگام انجام این کار، برخی از مقادیر پارامتر ممکن است برای هر پروژه متفاوت باشد. فایلهای .env
ویژه پروژه این امکان را فراهم میکنند:
- مقادیر پارامترهایی را که بین پروژهها در
extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
- مقادیر پارامترهای مشترک را در
extensions/ EXTENSION_INSTANCE_ID .env
قرار دهید.
گاهی اوقات، ممکن است بخواهید هنگام شبیه سازی برنامه های افزودنی خود از یک مقدار پارامتر متفاوت استفاده کنید: برای مثال، ممکن است بخواهید به جای کلید تولید، یک کلید API آزمایشی ارائه دهید. این پارامترها را در یک فایل .local
قرار دهید:
- پارامترهای غیر محرمانه ای را که می خواهید در حین شبیه سازی استفاده کنید در
extensions/ EXTENSION_INSTANCE_ID .env.local
قرار دهید - مقادیر پارامتر مخفی را در
extensions/ EXTENSION_INSTANCE_ID .secret.local