תוסף ל-Firebase מבצע משימה ספציפית או קבוצה של משימות בתגובה לבקשות HTTP או להפעלת אירועים ממוצרי Firebase ו-Google אחרים, כמו Firebase Cloud Messaging, Cloud Firestore או Pub/Sub.
תוכלו ליצור תוסף משלכם לשימוש אישי או לשיתוף עם כולם במרכז התוספים של Firebase. לדוגמה, התוסף יכול לבצע משימה ספציפית שנדרשת לאפליקציה באופן קבוע, או להקל על הגישה לאחד מ-API של החברה. אחרי שתיצרו את התוסף, תוכלו לשתף אותו עם אחרים. המשתמשים האלה יכולים להתקין את התוסף ולהגדיר אותו לשימוש בפרויקטים שלהם ב-Firebase.
המבנה של תוסף
אפשר לחשוב על תוסף ככזה שיש לו שלושה רכיבים עיקריים:
- קוד של Cloud Functions, ב-JavaScript או ב-TypeScript
- מטא-נתונים שמתארים את התוסף
- מסמכי עזרה שיעזרו למשתמשים להגדיר את התוסף ולהשתמש בו
כדי לפתח תוסף, צריך להרכיב את הרכיבים האלה במבנה הבא:
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
מכילה את הקוד של Cloud Functions ב-JavaScript או ב-TypeScript. זהו הקוד שמבצע את המשימות של התוסף בתגובה לאירועים שמופעלים על ידי Firebase ושירותי Google. - הקובץ
extension.yaml
מכיל מטא-נתונים על התוסף, כמו הטריגרים ותפקידי הגישה ב-IAM, וגם פרמטרים שרוצים שהמשתמשים יוכלו להגדיר. - הקבצים
PREINSTALL
,POSTINSTALL
ו-CHANGELOG
הם המסמכים המינימליים שצריכים להיות בסיומת. הקבצים האלה עוזרים למשתמשים להבין מה התוסף עושה, איך משתמשים בו ואילו עדכונים בוצעו. כדאי גם לספק סמל שיעזור למשתמשים לזהות את התוסף. תוכן הקבצים האלה מוצג במסוף Firebase, ב-CLI של Firebase ובמרכז התוספים כשמשתמשים בודקים, מתקינים ומנהלים את התוסף.
אחרי שיוצרים את התוסף, אפשר להשתמש ב-CLI של Firebase כדי להתקין אותו בפרויקט או לפרסם אותו במרכז התוספים, שבו כל אחד יכול למצוא אותו ולהתקין אותו בפרויקטים שלו.
עם אילו מוצרים התוסף יכול לקיים אינטראקציה?
מאחר שהתוסף של Firebase פועל באמצעות Cloud Functions, אפשר לחשוב על השילובים האפשריים בשתי דרכים: אילו מוצרים יכולים להפעיל את הפונקציות של התוסף? וגם לאילו מוצרים הפונקציות של התוסף יכולות לקיים אינטראקציה אחרי שהן מופעלות?
טריגרים נתמכים של פונקציות
טריגרים ידניים
קודם כול, אפשר להפעיל פונקציה באופן ידני. תוספים של Firebase ו-Cloud Functions תומכים בשתי דרכים להפעלת פונקציות באופן ידני:
- טריגרים של HTTP: פריסת פונקציה בנקודת קצה (endpoint) של HTTP
- פונקציות שניתן להפעיל: אפשר להפעיל את Cloud Functions ישירות מקוד הלקוח ל-iOS, ל-Android או לאינטרנט באמצעות ערכות ה-SDK של לקוח Firebase.
חשיפה של נקודות קצה מסוג HTTP מהתוסף מאפשרת לו להשתלב עם כל שירות אינטרנט שתומך ב-webhooks. באמצעות פונקציות שניתן להפעיל, משתמשים שמתקינים את התוסף יכולים להשתמש ב-Firebase SDK כספריית לקוח כדי לגשת לממשק ה-API שהתוסף מטמיע.
טריגרים של שירותים ב-Firebase
רוב מוצרי Firebase פולטים אירועים שיכולים להפעיל את Cloud Functions של התוסף.
- Analytics: הפעלת פונקציות כשאירוע מתועד ביומן של Analytics
- הפצת אפליקציות: הפעלת פונקציות כשהפצת האפליקציות מפעילה התראה
- אימות: הפעלת פונקציות כשמשתמשים יוצרים ומוחקים חשבונות
- Cloud Firestore: הפעלת פונקציות כשיוצרים, מעדכנים או מוחקים דפים
- Cloud Storage: הפעלת פונקציות כשאובייקטים מועלים, מועברים לארכיון או נמחקים מקטגוריות
- Crashlytics: הפעלת פונקציות כש-Crashlytics מפעילה התראה
- מעקב אחר ביצועים: הפעלת פונקציות כשמתקבלת התראה ממעקב הביצועים
- Realtime Database: הפעלת פונקציות כאשר נתונים נוצרים, מתעדכנים או נמחקים
- הגדרת תצורה מרחוק: הפעלת פונקציות כשפרמטר מתעדכן
- Test Lab: הפעלת פונקציות כש-Test Lab מפעילה התראה
טריגרים של שירותי Google Cloud
תוסף יכול לכלול גם פונקציות שמפעילות כמה שירותי Google Cloud שאינם Firebase:
- Cloud Pub/Sub: תוסף יכול לכלול פונקציות שמופעלות כשאירועים מתפרסמים בנושא Pub/Sub שניתן להגדרה.
- Cloud Scheduler: תוסף יכול לכלול פונקציות שפועלות לפי לוח זמנים מוגדר
- Cloud Tasks: תוסף יכול לכלול פונקציות שאפשר להוסיף לתור באמצעות Cloud Tasks. התכונה הזו מאפשרת לכותבי התוספים לכתוב פונקציות שתגיב לאירועים ב'מחזור החיים' של התוסף: התקנה בפרויקט בפעם הראשונה, שדרוג לגרסה חדשה ושינוי של הגדרות התצורה.
- Eventarc: תוסף יכול לכלול פונקציות שמופעלות כשאירועים מתפרסמים בערוץ Eventarc שניתן להגדיר. לעומת זאת, תוסף יכול לפרסם אירועים משלו בערוץ Eventarc כדי לאפשר למשתמשים להגדיר פונקציות משלהם שמופעלות מאירועים של התוסף.
תמיכה בפונקציות
אחרי שהפונקציה ב-Cloud Functions של התוסף מופעלת, מגוון השילובים האפשריים הוא בדרך כלל פתוח. ריכזנו כאן כמה מהדברים שאפשר לעשות באמצעות Cloud Function:
- קריאה, כתיבה ואינטראקציה אחרת עם כל שירות של Firebase או Google Cloud שמשתמש בתפקיד IAM נתמך.
- עבודה עם כל שירות צד שלישי שמספק ממשק Web API.
- אם אתם מספקים ממשק API לאינטרנט, עליכם לעבוד עם השירותים בהתאמה אישית.
- להריץ את רוב ספריות JavaScript, כולל TensorFlow.js, Express.js וכו'.
איך יוצרים תוסף
במדריך תחילת העבודה מוסבר איך ליצור, לבדוק ולפרסם תוסף מלא. זהו המדריך המומלץ ללמידה על פיתוח תוספים.
אחרי שקוראים את המדריך למתחילים פעם אחת, אפשר לעיין במדריכים הספציפיים בנושאים השונים, שבהם מוסבר על כל אחת מהמשימות שצריך לבצע כדי ליצור תוסף משלכם:
- כתיבת פונקציות לתוסף
- שימוש בפרמטרים בתוסף
- הגדרת גישה מתאימה לתוסף
- תגובה לאירועים במחזור החיים של התוסף
- הוספת וו hooks של משתמשים לתוסף
- יצירת מסמכי עזרה למשתמש עבור התוסף
- פרסום תוסף במרכז התוספים
- הסבר מלא על קובץ extension.yaml