یک افزونه فایربیس یک وظیفه خاص یا مجموعهای از وظایف را در پاسخ به درخواستهای HTTP یا فعال کردن رویدادها از سایر محصولات فایربیس و گوگل، مانند 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 و مرکز افزونهها، محتویات این فایلها را هنگام کاوش، نصب و مدیریت افزونه شما توسط کاربران نمایش میدهند.
پس از ایجاد افزونه، میتوانید از رابط خط فرمان فایربیس (Firebase CLI) برای نصب آن در یک پروژه یا انتشار آن در مرکز افزونهها (Extensions Hub) استفاده کنید، جایی که هر کسی میتواند آن را پیدا کرده و در پروژههای خود نصب کند.
افزونه من با چه محصولاتی میتواند تعامل داشته باشد؟
از آنجا که یک افزونهی فایربیس با استفاده از توابع ابری کار خود را انجام میدهد، میتوانید به دو روش به سوال ادغامهای احتمالی فکر کنید: چه محصولاتی میتوانند توابع افزونهی من را فعال کنند؟ و پس از فعال شدن، توابع افزونهی من با چه محصولاتی میتوانند تعامل داشته باشند؟
تریگرهای تابع پشتیبانی شده
محرکهای دستی
اول از همه، شما میتوانید به صورت دستی یک تابع را فعال کنید. افزونههای فایربیس و توابع ابری از دو روش برای فعال کردن دستی توابع پشتیبانی میکنند:
- تریگرهای HTTP: یک تابع را در یک نقطه پایانی HTTP مستقر کنید
- توابع قابل فراخوانی: توابع ابری خود را مستقیماً از کد iOS، اندروید یا کلاینت وب خود، با استفاده از SDK های کلاینت Firebase فراخوانی کنید.
با افشای نقاط پایانی HTTP از افزونه شما، افزونه شما میتواند به طور بالقوه با هر سرویس وب که از وبهوکها پشتیبانی میکند، ادغام شود. با توابع قابل فراخوانی، کاربرانی که افزونه شما را نصب میکنند میتوانند از SDK های Firebase به عنوان یک کتابخانه کلاینت برای دسترسی به API که افزونه شما پیادهسازی میکند، استفاده کنند.
محرکهای سرویس فایربیس
بیشتر محصولات Firebase رویدادهایی منتشر میکنند که میتوانند توابع ابری یک افزونه را فعال کنند.
- آنالیتیکس: وقتی آنالیتیکس یک رویداد را ثبت میکند، توابعی را فعال میکند
- توزیع برنامه: وقتی توزیع برنامه باعث ایجاد هشدار میشود، توابع را فعال میکند
- احراز هویت: هنگام ایجاد و حذف حساب توسط کاربران، توابعی فعال میشوند
- Cloud Firestore: هنگام ایجاد، بهروزرسانی یا حذف صفحات، توابع را فعال میکند
- فضای ذخیرهسازی ابری : هنگام آپلود، بایگانی یا حذف اشیاء از سطلها، توابع را فعال میکند.
- Crashlytics: وقتی Crashlytics یک هشدار را فعال میکند، توابع را فعال میکند
- نظارت بر عملکرد: هنگامی که نظارت بر عملکرد هشداری را فعال میکند، توابع را فعال میکند
- پایگاه داده بلادرنگ: توابع را هنگام ایجاد، بهروزرسانی یا حذف دادهها فعال میکند
- پیکربندی از راه دور: وقتی یک پارامتر بهروزرسانی میشود، توابع را فعال میکند
- آزمایشگاه تست: وقتی آزمایشگاه تست یک هشدار را فعال میکند، توابع را فعال میکند
محرکهای سرویس ابری گوگل
یک افزونه همچنین میتواند شامل توابعی باشد که چندین سرویس Google Cloud غیر Firebase را فعال میکنند:
- Cloud Pub/Sub : یک افزونه میتواند شامل توابعی باشد که هنگام ارسال رویدادها به یک موضوع Pub/Sub قابل تنظیم، فعال میشوند.
- زمانبند ابری : یک افزونه میتواند شامل توابعی باشد که طبق یک برنامه زمانی مشخص اجرا میشوند.
- وظایف ابری : یک افزونه میتواند شامل توابعی باشد که میتوانند با استفاده از وظایف ابری در صف قرار گیرند. افزونههای فایربیس از این قابلیت استفاده میکنند تا به شما، به عنوان نویسنده افزونه، اجازه دهند توابعی بنویسید که به رویدادهای "چرخه عمر" یک افزونه پاسخ میدهند: نصب در یک پروژه برای اولین بار، ارتقا به نسخه جدید و پیکربندی مجدد.
- Eventarc : یک افزونه میتواند شامل توابعی باشد که هنگام انتشار رویدادها در یک کانال Eventarc قابل تنظیم، فعال میشوند؛ برعکس، یک افزونه میتواند رویدادهای خود را در یک کانال Eventarc منتشر کند تا کاربران بتوانند توابع خود را که از رویدادهای یک افزونه فعال میشوند، تعریف کنند.
پشتیبانی شده از توابع
پس از فعال شدن عملکرد ابری یک افزونه، طیف وسیعی از ادغامهای ممکن عموماً نامحدود است. در اینجا به برخی از نکات برجستهای که میتوانید از طریق یک عملکرد ابری انجام دهید، اشاره میکنیم:
- خواندن، نوشتن و تعامل با هر سرویس Firebase یا Google Cloud که از نقش IAM پشتیبانی شده استفاده میکند.
- با هر سرویس شخص ثالثی که API وب ارائه میدهد، کار کنید.
- اگر API وب ارائه میدهید، با سرویسهای سفارشی خود کار کنید.
- اکثر کتابخانههای جاوا اسکریپت، از جمله TensorFlow.js ، Express.js و غیره را اجرا کنید.
نحوه ساخت یک افزونه
آموزش شروع به کار ، شما را در فرآیند ساخت، آزمایش و انتشار یک افزونه کامل راهنمایی میکند و روش پیشنهادی برای یادگیری نحوه ساخت آن است.
بعد از اینکه یک بار راهنمای شروع به کار را مطالعه کردید، میتوانید به راهنماهای موضوعی جداگانه مراجعه کنید که هر یک از وظایف مربوط به ساخت افزونه خودتان را توضیح میدهند:
- نوشتن توابع برای یک افزونه
- استفاده از پارامترها در یک افزونه
- تنظیم دسترسی مناسب برای یک افزونه
- پاسخ به رویدادهای چرخه حیات افزونه
- اضافه کردن قلابهای کاربر به یک افزونه
- ایجاد مستندات کاربری برای افزونه شما
- یک افزونه را در Extensions Hub منتشر کنید
- مرجع کامل extension.yaml