نمای کلی ناشر برنامه افزودنی
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
یک برنامه افزودنی Firebase یک کار یا مجموعه وظایف خاصی را در پاسخ به درخواستهای HTTP یا راهاندازی رویدادهای سایر محصولات Firebase و Google انجام میدهد، مانند Firebase Cloud Messaging، Cloud Firestore یا Pub/Sub.
میتوانید برنامه افزودنی خود را برای استفاده شخصی یا اشتراکگذاری با جهان در Firebase Extensions Hub بسازید. برای مثال، برنامه افزودنی شما میتواند کار خاصی را انجام دهد که برنامه شما به طور منظم به آن نیاز دارد، یا میتواند دسترسی به یکی از APIهای شرکت شما را آسانتر کند. پس از ایجاد برنامه افزودنی خود، می توانید آن را با دیگران به اشتراک بگذارید. این کاربران می توانند افزونه را برای استفاده در پروژه های Firebase خود نصب و پیکربندی کنند.
ساختار یک پسوند
شما می توانید یک برنامه افزودنی را دارای سه جزء اصلی در نظر بگیرید:
- کد توابع ابری، در جاوا اسکریپت یا تایپ اسکریپت
- فراداده ای که برنامه افزودنی شما را توصیف می کند
- اسنادی برای کمک به کاربران خود در پیکربندی و استفاده از برنامه افزودنی شما
برای توسعه یک افزونه، این اجزا را در ساختار زیر مونتاژ می کنید:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- فهرست
functions
حاوی کد توابع ابری شما در جاوا اسکریپت یا تایپ اسکریپت است. این کدی است که وظایف برنامه افزودنی را در پاسخ به رویدادهایی که توسط Firebase و سرویسهای Google راهاندازی میشوند، انجام میدهد. - فایل
extension.yaml
حاوی فرادادههای مربوط به برنامه افزودنی شما، مانند محرکهای آن و نقشهای دسترسی IAM، و همچنین هر پارامتری است که میخواهید توسط کاربر قابل تنظیم باشد. - فایل های
PREINSTALL
، POSTINSTALL
و CHANGELOG
حداقل اسنادی هستند که برنامه افزودنی شما باید داشته باشد. این فایلها به کاربران شما کمک میکنند یاد بگیرند که برنامه افزودنی شما چه کار میکند، چگونه از آن استفاده کنند و چه بهروزرسانیهایی انجام دادهاید. همچنین باید یک نماد برای کمک به کاربران در تشخیص برنامه افزودنی خود ارائه دهید. کنسول Firebase، Firebase CLI، و Extensions Hub محتویات این فایلها را هنگامی که کاربران برنامه افزودنی شما را کاوش، نصب و مدیریت میکنند، نمایش میدهند.
پس از ایجاد برنامه افزودنی خود، می توانید از Firebase CLI برای نصب آن در یک پروژه یا انتشار آن در Extensions Hub استفاده کنید، جایی که هر کسی می تواند آن را کشف و در پروژه های خود نصب کند.
برنامه افزودنی من با چه محصولاتی می تواند تعامل داشته باشد؟
از آنجایی که یک برنامه افزودنی Firebase کار خود را با استفاده از توابع Cloud انجام می دهد، می توانید به دو طریق به سؤال ادغام های احتمالی فکر کنید: چه محصولاتی می توانند عملکردهای برنامه افزودنی من را فعال کنند؟ و پس از فعال شدن، عملکردهای برنامه افزودنی من با چه محصولاتی می توانند تعامل داشته باشند؟
محرک های عملکرد پشتیبانی شده
محرک های دستی
اول از همه، می توانید به صورت دستی یک تابع را فعال کنید. افزونه های Firebase و توابع Cloud از دو روش برای فعال کردن دستی عملکردها پشتیبانی می کنند:
- محرک های HTTP: یک تابع را در نقطه پایانی HTTP مستقر کنید
- توابع قابل فراخوانی: با استفاده از SDK مشتری Firebase، مستقیماً از iOS، Android یا کد سرویس گیرنده وب، با توابع Cloud خود تماس بگیرید.
با افشای نقاط پایانی HTTP از برنامه افزودنی خود، برنامه افزودنی شما به طور بالقوه می تواند با هر سرویس وب که از وبکهک ها پشتیبانی می کند ادغام شود. با توابع قابل فراخوانی، کاربرانی که برنامه افزودنی شما را نصب میکنند، میتوانند از Firebase SDK بهعنوان کتابخانه مشتری برای دسترسی به APIهایی که برنامههای افزودنی شما اجرا میکند استفاده کنند.
محرک های سرویس Firebase
اکثر محصولات Firebase رویدادهایی را منتشر می کنند که می توانند عملکردهای ابری یک برنامه افزودنی را فعال کنند.
- تجزیه و تحلیل: هنگامی که Analytics یک رویداد را ثبت می کند، عملکردها را راه اندازی می کند
- توزیع برنامه: هنگامی که توزیع برنامه یک هشدار را راهاندازی میکند، عملکردهای ماشهای را فعال میکند
- احراز هویت: هنگامی که کاربران حساب ها را ایجاد و حذف می کنند، عملکردها را فعال می کند
- Cloud Firestore: هنگام ایجاد، بهروزرسانی یا حذف صفحات، عملکردهایی را فعال میکند
- Cloud Storage : هنگامی که اشیاء آپلود، بایگانی یا از سطل ها حذف می شوند، عملکردها را فعال می کند.
- Crashlytics: هنگامی که Crashlytics یک هشدار را راهاندازی میکند، عملکرد ماشه را نشان میدهد
- نظارت بر عملکرد: هنگامی که مانیتورینگ عملکرد هشداری را راهاندازی میکند، عملکرد ماشهای ایجاد میشود
- پایگاه داده بیدرنگ: هنگام ایجاد، به روز رسانی یا حذف داده ها، عملکردهایی را فعال می کند
- Remote Config: هنگامی که یک پارامتر بهروزرسانی میشود، عملکردها را فعال میکند
- Test Lab: هنگامی که آزمایشگاه تست هشداری را راهاندازی میکند، عملکرد ماشهای انجام میشود
سرویس Google Cloud فعال می شود
یک برنامه افزودنی همچنین میتواند شامل عملکردهایی باشد که چندین سرویس Google Cloud غیر Firebase را فعال میکنند:
- Cloud Pub/Sub : یک برنامه افزودنی می تواند شامل توابعی باشد که هنگام پست شدن رویدادها در یک موضوع Pub/Sub قابل تنظیم، فعال شوند.
- Cloud Scheduler : یک برنامه افزودنی می تواند شامل توابعی باشد که بر اساس یک زمانبندی تنظیم شده اجرا می شوند
- Cloud Tasks : یک برنامه افزودنی می تواند شامل توابعی باشد که می توان با استفاده از Cloud Tasks در صف قرار داد. Firebase Extensions از این قابلیت استفاده می کند تا به شما به عنوان یک نویسنده برنامه افزودنی اجازه بنویسد توابعی را بنویسید که به رویدادهای "چرخه عمر" یک برنامه افزودنی پاسخ می دهد: برای اولین بار در یک پروژه نصب می شود، به نسخه جدید ارتقا می یابد و پیکربندی مجدد می شود.
- Eventarc : یک برنامه افزودنی می تواند شامل توابعی باشد که هنگام انتشار رویدادها در یک کانال قابل تنظیم Eventarc فعال می شوند. برعکس، یک برنامه افزودنی میتواند رویدادهای خود را در یک کانال Eventarc منتشر کند تا کاربران را قادر سازد تا عملکردهای خود را که از رویدادهای یک برنامه افزودنی آغاز میشوند، تعریف کنند.
پشتیبانی از توابع
هنگامی که یک برنامه افزودنی Cloud Function راه اندازی شد، دامنه ادغام های ممکن به طور کلی باز است. در اینجا چند نکته برجسته از کارهایی که می توانید از یک Cloud Function انجام دهید آورده شده است:
- خواندن، نوشتن، و در غیر این صورت با هر سرویس Firebase یا Google Cloud که از نقش پشتیبانی شده IAM استفاده میکند تعامل داشته باشید.
- با هر سرویس شخص ثالثی که یک وب API ارائه می دهد کار کنید.
- اگر یک وب API ارائه می کنید، با خدمات سفارشی خود کار کنید.
- اکثر کتابخانه های جاوا اسکریپت، از جمله TensorFlow.js ، Express.js و غیره را اجرا کنید.
چگونه یک افزونه بسازیم
آموزش شروع به شما در فرآیند ساخت، آزمایش و انتشار یک برنامه افزودنی کامل راهنمایی می کند و روشی توصیه شده برای یادگیری نحوه ساخت آن است.
شروع کنید
بعد از اینکه یک بار راهنمای شروع کار را مرور کردید، می توانید به راهنمای موضوع جداگانه مراجعه کنید، که هر یک از وظایف مربوط به ایجاد برنامه افزودنی خود را توضیح می دهد:
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی."],[],[],null,["\u003cbr /\u003e\n\nA Firebase Extension performs a specific task or set of tasks in response to\nHTTP requests or triggering events from other Firebase and Google products, like\nFirebase Cloud Messaging, Cloud Firestore, or Pub/Sub.\n\nYou can build your own extension for personal use or to share with the world in\nthe Firebase Extensions Hub. For example, your extension can perform a specific\ntask that your app regularly needs, or it can make it easier to access one of\nyour company's APIs. After you build your extension, you can share it with\nothers. Those users can install and configure the extension for use in their own\nFirebase projects.\n\nStructure of an extension\n\nYou can think of an extension as having three main components:\n\n- Cloud Functions code, in JavaScript or TypeScript\n- Metadata that describes your extension\n- Documentation to help your users configure and use your extension\n\nTo develop an extension, you assemble these components into the following\nstructure: \n\n example-extension\n ├── functions\n │ ├── integration-tests\n │ │ ├── extensions\n │ │ │ └── example-extension.env\n │ │ ├── firebase.json\n │ │ └── integration-test.spec.js\n │ ├── index.js\n │ └── package.json\n ├── README.md\n ├── PREINSTALL.md\n ├── POSTINSTALL.md\n ├── CHANGELOG.md\n ├── icon.png\n └── extension.yaml\n\n- The `functions` directory contains your Cloud Functions code in JavaScript or TypeScript. This is the code that performs the extension's tasks in response to events triggered by Firebase and Google services.\n- The `extension.yaml` file contains metadata about your extension, such as its triggers and IAM access roles, as well as any parameters you want to be user-configurable.\n- The `PREINSTALL`, `POSTINSTALL`, and `CHANGELOG` files are the minimum documentation your extension must have. These files help your users learn what your extension does, how to use it, and what updates you've made. You should also provide an icon to help users recognize your extension. The Firebase console, Firebase CLI, and Extensions Hub display the contents of these files when users explore, install, and manage your extension.\n\nAfter you have created your extension, you can use the Firebase CLI to install\nit into a project or publish it to the Extensions Hub, where anyone can discover\nand install it into their projects.\n\nWhat products can my extension interact with?\n\nBecause a Firebase extension does its work using Cloud Functions, you can think\nof the question of possible integrations in two ways: *What products can trigger\nmy extension's functions?* and *Once triggered, what products can my extension's\nfunctions interact with?*\n\nSupported function triggers\n\nManual triggers\n\nFirst of all, you can manually trigger a function. Firebase Extensions and Cloud\nFunctions support two ways of manually triggering functions:\n\n- HTTP triggers: deploy a function to an HTTP endpoint\n- Callable functions: call your Cloud Functions directly from your iOS, Android, or web client code, using the Firebase client SDKs.\n\nBy exposing HTTP endpoints from your extension, your extension can potentially\nintegrate with any web service that supports webhooks. With callable functions,\nusers who install your extension can use the Firebase SDKs as a client library\nfor accessing the API your extension implements.\n\nFirebase service triggers\n\nMost Firebase products emit events that can trigger an extension's Cloud\nFunctions.\n\n- **Analytics:** trigger functions when Analytics logs an event\n- **App Distribution:** trigger functions when App Distribution triggers an alert\n- **Authentication:** trigger functions when users create and delete accounts\n- **Cloud Firestore:** trigger functions when pages are created, updated, or deleted\n- **Cloud Storage**: trigger functions when objects are uploaded, archived, or deleted from buckets\n- **Crashlytics:** trigger functions when Crashlytics triggers an alert\n- **Performance Monitoring:** trigger functions when Performance Monitoring triggers an alert\n- **Realtime Database:** trigger functions when data is created, updated, or deleted\n- **Remote Config:** trigger functions when a parameter is updated\n- **Test Lab:** trigger functions when Test Lab triggers an alert\n\nGoogle Cloud service triggers\n\nAn extension can also include functions that trigger off several non-Firebase\nGoogle Cloud services:\n\n- **Cloud Pub/Sub**: an extension can include functions that trigger when events are posted to a configurable Pub/Sub topic.\n- **Cloud Scheduler**: an extension can include functions that run on a set schedule\n- **Cloud Tasks**: an extension can include functions that can be queued using Cloud Tasks. Firebase Extensions uses this capability to let you, as an extension author, write functions that respond to an extension's \"lifecycle\" events: being installed in a project for the first time, being upgraded to a new version, and being reconfigured.\n- **Eventarc** : an extension can include functions that trigger when events are published to a configurable Eventarc channel; conversely, an extension can publish its own events to an Eventarc channel in order to enable users to define their own functions that trigger from an *extension's* events.\n\nSupported from functions\n\nOnce an extension's Cloud Function has been triggered, the range of possible\nintegrations is generally open ended. Here are some highlights of what you can\ndo from a Cloud Function:\n\n- Read, write, and otherwise interact with any **Firebase** or **Google Cloud** service that uses a [supported IAM role](/docs/extensions/publishers/access#supported-roles).\n- Work with any **third-party service** that provides a web API.\n- Work with your **custom services** if you provide a web API.\n- Run most JavaScript libraries, including **TensorFlow.js** , **Express.js,** and so on.\n\nHow to build an extension\n\nThe [Get Started](/docs/extensions/publishers/get-started) tutorial walks you through\nthe process of building, testing, and publishing a complete extension, and is\nthe recommended way to learn how to build one.\n\n[Get Started](/docs/extensions/publishers/get-started)\n\nAfter you've gone through the getting started guide once, you can refer to the\nindividual topic guides, which explain each of the tasks involved in building\nyour own extension:\n\n- [Write functions for an extension](/docs/extensions/publishers/functions)\n- [Use parameters in an extension](/docs/extensions/publishers/parameters)\n- [Set up appropriate access for an extension](/docs/extensions/publishers/access)\n- [Respond to extension lifecycle events](/docs/extensions/publishers/lifecycle-events)\n- [Add user hooks to an extension](/docs/extensions/publishers/user-hooks)\n- [Create user documentation for your extension](/docs/extensions/publishers/user-documentation)\n- [Publish an extension on Extensions Hub](/docs/extensions/publishers/upload-and-publish)\n- [Complete extension.yaml reference](/docs/extensions/reference/extension-yaml)"]]