میتوانید هر یک از برنامههای افزودنی رسمی Firebase را با استفاده از کنسول Firebase ، Firebase CLI (واسط خط فرمان) یا با استفاده از یک SDK خود تولید شده نصب کنید (و مدیریت کنید ).
اطمینان حاصل کنید که تفاوت در اقدامات پشتیبانی شده برای هر روش نصب را بررسی کنید.
نصب با استفاده از یک SDK خودکار یک گزینه جدید برای نصب و مدیریت برنامه های افزودنی است. با استفاده از این گزینه، از CLI برای تولید خودکار Node SDK برای یک نسخه برنامه افزودنی خاص استفاده میکنید، که میتوانید آن را به عنوان یک وابستگی معمولی در توابع ابری JavaScript یا TypeScript وارد کنید.
این SDK که به طور خودکار تولید می شود شامل:
- رابطی که پارامترهای برنامه افزودنی و اعلانهای نوع را برای اکثر انواع پارامترهای غیر ابتدایی نشان میدهد.
- یک تابع سازنده که نمونه ای از پسوند را مقداردهی اولیه می کند
- یک کلاس افزونه که شامل تریگرهای Eventarc برای همه رویدادهای منتشر شده توسط برنامه افزودنی است.
هنگامی که یک برنامه افزودنی SDK ایجاد کردید، تمام پیکربندی برنامه افزودنی در کد انجام می شود.
استفاده از این گزینه نصب میتواند مدیریت چندین نمونه برنامه افزودنی را بهویژه در پروژههایی که حاوی توابع Cloud هستند که خارج از برنامههای افزودنی تعریف شدهاند، بسیار ساده کند.
برای نصب یا مدیریت برنامههای افزودنی، باید یکی از این نقشها به شما اختصاص داده شود: مالک یا ویرایشگر یا مدیر Firebase .
برای نصب افزونه، پروژه شما باید در طرح Blaze (پرداخت در حین حرکت) باشد. اگرچه هزینه ای برای نصب برنامه افزودنی دریافت نمی شود، ممکن است برای استفاده از سرویس های Firebase یا سرویس های Cloud مانند Cloud Secret Manager هزینه ای دریافت کنید، اگر میزان استفاده شما از سطح رایگان سرویس ها بیشتر شود.
قبل از شروع
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه خود اضافه کنید .
اگر قبلاً این کار را نکرده اید، پروژه خود را به طرح Blaze (پرداخت در حین انجام کار) ارتقا دهید.
به شناسه پروژه Firebase یا نام مستعار پروژه پیکربندی شده قبلی خود توجه داشته باشید.
- شناسه پروژه -
firebase projects:list
از هر نقطه از رایانه خود اجرا کنید. - نام مستعار پروژه -
firebase use
از فهرست برنامه محلی خود اجرا کنید.
- شناسه پروژه -
مرحله 1 : اطلاعات دقیق در مورد یک برنامه افزودنی را مشاهده کنید
این مرحله اختیاری است، اما به شدت توصیه می شود.
قبل از نصب Firebase Extension ، توصیه میکنیم اطلاعات دقیق مربوط به افزونه را مرور کنید، از جمله:
- نحوه عملکرد برنامه افزودنی، هرگونه کار پیش از نصب، و جزئیات مربوط به برنامه افزودنی
- اطلاعات شناسایی عمومی و توضیحات
- آیا وظایف برنامه افزودنی به حساب صورتحساب نیاز دارد
- سرویسهای Google (API) و به نقشهای مورد نیاز برای عملیات دسترسی داشته باشید
- منابع ایجاد شده برای برنامه افزودنی (مانند توابع)
- توضیحات پارامترهای قابل تنظیم توسط کاربر
برای مشاهده اطلاعات دقیق یک برنامه افزودنی:
مطمئن شوید که محیط خود را تنظیم کرده اید و یک برنامه افزودنی را انتخاب کرده اید .
دستور extension-info را از هر نقطه از رایانه خود اجرا کنید:
firebase ext:info
publisher-id /extension-id آرگومانهای
publisher-id
وextension-id
مورد نیاز هستند و میتوانند در صفحه جزئیات نصب پیشنصب برنامه افزودنی پیدا شوند.
مرحله 2 : یک افزونه نصب کنید
قبل از نصب، مشخصات اولیه برنامه افزودنی (مانند API های فعال، منابع ایجاد شده، دسترسی اعطا شده و غیره) و الزامات صورتحساب آن را بررسی کنید.
قبل از ادامه، مطمئن شوید که محیط خود را تنظیم کرده اید و یک برنامه افزودنی را انتخاب کرده اید .
توابع Cloud را برای Firebase راه اندازی کنید
اگر پروژه جدیدی را شروع می کنید یا اگر پروژه شما قبلاً از Cloud Functions برای Firebase استفاده نمی کند، init functions
اجرا کنید:
cd your-project
firebase init functions
TypeScript یا JavaScript را به عنوان زبان توابع خود انتخاب کنید.
اگر پروژه شما قبلاً دارای توابع Cloud اولیه شده است، مطمئن شوید که از نسخه 5.1.0 یا جدیدتر بسته firebase-functions
استفاده می کنید:
cd your-project/functions
npm upgrade --save firebase-functions
اگر از ESLint استفاده میکنید، ممکن است بخواهید SDKهای تولید شده را نیز از پیکربندی خود حذف کنید ( .eslintrc.js
):
ignorePatterns: [
"/generated/**/*", // Ignore generated files.
// ...
],
یک افزونه SDK ایجاد کنید
از دایرکتوری Firebase محلی خود، دستور ext:sdk:install
اجرا کنید.
firebase ext:sdk:installpublisher-id /extension-id @version
به عنوان مثال، برای نصب نسخه 0.1.34 پسوند firestore-send-email
:
firebase ext:sdk:install firebase/firestore-send-email@0.1.34
publisher-id
و extension-id
مورد نیاز است و میتوانید آن را در صفحه جزئیات نصب پیشنصب برنامه افزودنی در extensions.dev پیدا کنید. قسمت @ version
اختیاری است. اگر آن را حذف کنید، ابزار آخرین نسخه را نصب می کند.
دو گزینه وجود دارد که می توانید مشخص کنید:
--force
: تمام کارهای زیر را بدون تایید بیشتر انجام دهید:- تولید خودکار SDK حتی اگر قبلاً برای همان برنامه افزودنی و نسخه ایجاد شده باشد.
- بسته SDK خود تولید شده را در پروژه Cloud Functions Node نصب کنید.
--codebase
: نام پایگاه کد برای افزودن SDK به آن. اگر مشخص نشده باشد، فرمان SDK را به پایگاه کد پیشفرض،functions
اضافه میکند.
این دستور یک بسته Node حاوی یک SDK ایجاد می کند که به طور خودکار برای برنامه افزودنی تولید می شود و آن را به یکی از پایگاه های کد توابع ابری پروژه شما اضافه می کند. در پایگاه کد پیشفرض ( functions
)، SDK در مکان زیر ذخیره میشود:
functions/generated/extensions/publisher-id /extension-id /version
پس از تولید SDK، فرمان از شما میپرسد که آیا میخواهید SDK را در پروژه Cloud Functions Node خود نیز نصب کنید. به این درخواست پاسخ مثبت دهید.
نمونه های برنامه افزودنی را پیکربندی کنید
برای پیکربندی برنامه افزودنی، SDK را وارد کنید، و برای هر نمونه برنامه افزودنی که میخواهید نصب کنید، تابع سازنده را فراخوانی کنید و یک ID نمونه منحصر به فرد پروژه و پارامترهای پیکربندی مورد نیاز برنامه افزودنی را به آن ارسال کنید.
در منبع توابع ابری خود، سازنده را با استفاده از دستور چاپ شده توسط دستور
ext:sdk:install
وارد کنید.به عنوان مثال، اگر یک SDK برای پسوند
firestore-send-email
ایجاد کرده باشید، عبارتimport
چیزی شبیه به زیر خواهد بود:import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
اگر برنامه افزودنی به مقادیر مخفی مانند رمز عبور نیاز دارد، به تابع
defineSecret
از Cloud Functions SDK نیز نیاز دارید:import { defineSecret } from "firebase-functions/params";
به عنوان مثال، اگر یک SDK برای پسوند
firestore-send-email
ایجاد کرده باشید، عبارتrequire
چیزی شبیه به زیر خواهد بود:const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
اگر برنامه افزودنی به مقادیر مخفی مانند رمز عبور نیاز دارد، به تابع
defineSecret
از Cloud Functions SDK نیز نیاز دارید:const { defineSecret } = require('firebase-functions/params');
برای هر نمونه ای که می خواهید پیکربندی کنید، تابع سازنده را فراخوانی کرده و نتیجه را صادر کنید.
به هر نمونه یک شناسه منحصربفرد بدهید که فقط شامل حروف کوچک، اعداد و خط فاصله باشد.
export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465", SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"), MAIL_COLLECTION: "mail", DEFAULT_FROM: "ExampleCo <username@example.com>", TTL_EXPIRE_VALUE: "1", TTL_EXPIRE_TYPE: "day", });
exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465", SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"), MAIL_COLLECTION: "mail", DEFAULT_FROM: "ExampleCo <username@example.com>", TTL_EXPIRE_VALUE: "1", TTL_EXPIRE_TYPE: "day", });
توجه داشته باشید که مقادیر مخفی باید با استفاده از تابع
defineSecret
مشخص شوند.سپس، برای استقرار افزونه هایی که پیکربندی کرده اید، اجرا کنید:
firebase deploy --only functions --project=
projectId-or-alias همه گزینههای معمول استقرار توابع ابری اعمال میشوند. به عنوان مثال، برای استقرار یک نمونه پسوند واحد از یک پایگاه کد خاص:
firebase deploy --only functions:
codebase :extension-instance-id --project=projectId-or-alias
مرحله 3 : راه اندازی پس از نصب را کامل کنید
برخی از برنامههای افزودنی دارای مراحل لازم یا اختیاری هستند که باید قبل از استفاده از آنها تکمیل کنید. این دستورالعمل ها را در صفحه جزئیات پس از نصب برنامه افزودنی خود در داشبورد Extensions کنسول Firebase پیدا کنید (پیوند خاص داشبورد پس از نصب در ترمینال نمایش داده می شود).
همچنین میتوانید این دستورالعملها را در فایل POSTINSTALL.md
موجود در فهرست منبع برنامه افزودنی بیابید.
منابع Firebase را ایجاد کنید
اگر برنامه افزودنی را برای استفاده از منابع Firebase (مجموعههای Cloud Firestore ، مسیرهای Realtime Database ، سطلهای Cloud Storage ) که از قبل وجود ندارند، پیکربندی کردهاید، قبل از استفاده از برنامه افزودنی، آنها را ایجاد کنید.
کنترل کننده رویداد Eventarc را ایجاد کنید
برخی از برنامههای افزودنی زمانی که رویدادهای مهم در حین اجرا اتفاق میافتند، در Eventarc منتشر میشوند. اگر یک برنامه افزودنی رویدادها را منتشر می کند، می توانید توابعی بنویسید که با منطق سفارشی خود به این رویدادها واکنش نشان می دهند. این می تواند مفید باشد، به عنوان مثال، برای اطلاع دادن به کاربران هنگام تکمیل وظایف طولانی مدت، یا برای پس پردازش خروجی یک تابع برنامه افزودنی.
اگر میخواهید برای هر یک از رویدادهایی که توسط افزونه منتشر میشود، کنترلکنندههایی تعریف کنید، میتوانید این کار را با استفاده از روشهای راهانداز هر نمونه انجام دهید:
export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });
export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
// Handle mail errors.
});
exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });
exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
// Handle mail errors.
});
باید کنترل کننده رویداد را به همراه نمونه برنامه افزودنی صادر کنید.
پس از تعریف یک کنترل کننده رویداد، و پس از هر بار که تغییراتی در یکی ایجاد کردید، هم افزونه و هم کنترل کننده را مجدداً قرار دهید.
چند نمونه برنامه افزودنی را نصب کنید
شما می توانید یک افزونه را بیش از یک بار در همان پروژه نصب کنید. هر نمونه نصب شده می تواند پیکربندی سفارشی شده و منابع برنامه افزودنی خود را داشته باشد. شما هر نمونه نصب شده را با استفاده از شناسه نمونه آن شناسایی کرده و به آن ارجاع می دهید که در پروژه شما منحصر به فرد است.
برای هر نمونه ای که می خواهید نصب و پیکربندی کنید، تابع سازنده SDK خود تولید شده را یک بار فراخوانی کنید.
مراحل بعدی
جزئیات و پیکربندی افزونه نصب شده خود را در کنسول Firebase مشاهده کنید.
فعالیت برنامه افزودنی نصب شده خود، از جمله بررسی سلامت، استفاده و گزارشهای آن را نظارت کنید .
با استفاده از کنسول Firebase ، برنامه افزودنی نصب شده خود را مدیریت کنید . برای افزونههای رسمی Firebase ، میتوانید برنامه افزودنی خود را مجدداً پیکربندی یا حذف نصب کنید، و همچنین برنامه افزودنی خود را به آخرین نسخه بهروزرسانی کنید.
به عنوان بهترین روش برای همه پروژه ها، مطمئن شوید که هشدارهای بودجه را برای پروژه خود تنظیم کرده اید و داشبورد استفاده و صورتحساب خود را در کنسول Firebase نظارت کنید.