Cloud Functions מאפשרת למפתחים גישה ל-Firebase ולאירועים Google Cloud שמתרחשים בה, וגם כוח מחשוב ניתן להרחבה להפעלת קוד בתגובה לאירועים האלה. אפליקציות Firebase צפויות להשתמש ב-Cloud Functions בדרכים ייחודיות כדי לעמוד בדרישות הייחודיות שלהן, אבל תרחישים נפוצים לשימוש יכולים להיות בתחומים הבאים:
- התראות למשתמשים כשקורה משהו מעניין.
- ביצוע חיטוי ותחזוקה של מסד הנתונים.
- הפעלה של משימות עתירות משאבים בענן במקום באפליקציה.
- שילוב עם שירותים וממשקי API של צד שלישי.
אפשר לעיין בתרחישים לדוגמה ובדוגמאות לכל קטגוריה שמעניינת אתכם, ואז לעבור אל מדריך תחילת העבודה או אל מדריכים ספציפיים בנושא אירועי אימות, אירועים של ניתוח נתונים ועוד.
התראה למשתמשים כשקורה משהו מעניין
מפתחים יכולים להשתמש ב-Cloud Functions כדי לשמור על מעורבות המשתמשים ולעדכן אותם במידע רלוונטי על האפליקציה. לדוגמה, באפליקציה שמאפשרת למשתמשים לעקוב אחרי הפעילות של משתמשים אחרים באפליקציה. בכל פעם שמשתמש מוסיף את עצמו כעוקב של משתמש אחר, מתבצעת פעולת כתיבה ב-Cloud Functions.Realtime Database לאחר מכן, אירוע הכתיבה הזה יכול להפעיל פונקציה ליצירת התראות Firebase Cloud Messaging (FCM) כדי ליידע את המשתמשים הרלוונטיים על כך שהצטרפו אליהם עוקבים חדשים.
- הפונקציה מופעלת כשמתבצעות פעולות כתיבה בנתיב Realtime Database שבו מאוחסנים העוקבים.
- הפונקציה כותבת הודעה לשליחה באמצעות FCM.
- FCM שולח את הודעת ההתראה למכשיר של המשתמש.
כדי לבדוק קוד עובד, אפשר לעיין בקוד לדוגמה ב-GitHub:
- Node.js: fcm-notifications
- Python: fcm-notifications
תרחישים מעניינים נוספים לדוגמה לשימוש בהתראות
- שליחת אימיילים לאישור הרשמה למשתמשים שנרשמים לניוזלטר.
- שליחת אימייל ברכה כשמשתמש משלים את תהליך ההרשמה.
- שליחת אישור ב-SMS כשמשתמש יוצר חשבון חדש.
ביצוע חיטוי ותחזוקה של מסד הנתונים
באמצעות Cloud Functions טיפול באירועים במסד נתונים, אתם יכולים לשנות את Realtime Database או את Cloud Firestore בתגובה להתנהגות המשתמשים, וכך לשמור על המערכת במצב הרצוי. לדוגמה, אפשר לעקוב אחרי אירועי כתיבה ולשנות את הפורמט (למשל, להפוך את כל האותיות לרישיות) של מחרוזות מסוימות בהודעות של המשתמשים. כך זה יכול לעבוד:
- פונקציית ה-database event handler מקשיבה לאירועי כתיבה בנתיב ספציפי, ומאחזרת נתוני אירועים שמכילים את הטקסט של הודעות.
- הפונקציה מעבדת את הטקסט כדי לשנות מחרוזות לאותיות רישיות.
- הפונקציה כותבת את הטקסט המעודכן בחזרה למסד הנתונים.
כדי לבדוק קוד עובד, אפשר לעיין בקוד לדוגמה ב-GitHub:
- Node.js: uppercase-rtdb
- Python: uppercase-rtdb
תרחישים נוספים לשימוש בחיטוי ותחזוקה של מסדי נתונים
- מחיקה סופית של התוכן של משתמש שנמחק מ-Realtime Database.
- הגבלת מספר צמתי הצאצא במסד נתונים של Firebase.
- מעקב אחרי מספר הרכיבים ברשימת Realtime Database.
- העתקת נתונים מ-Realtime Database אל Google Cloud BigQuery.
- המרת טקסט לאמוג'י.
- ניהול מטא-נתונים מחושבים של רשומות במסד נתונים.
ביצוע משימות אינטנסיביות בענן במקום באפליקציה
אתם יכולים להשתמש ב-Cloud Functions כדי להעביר לענן של Google עבודות שדורשות הרבה משאבים (עומס גבוה על המעבד או על הרשת) במקום להריץ אותן במכשיר של המשתמש, וכך לשפר את מהירות התגובה של האפליקציה. לדוגמה, אתם יכולים לכתוב פונקציה שתאזין להעלאות של תמונות ל-Cloud Storage, תוריד את התמונה למופע שבו הפונקציה פועלת, תשנה אותה ותעלה אותה בחזרה ל-Cloud Storage. השינויים יכולים לכלול שינוי גודל, חיתוך או המרה של תמונות באמצעות כלים כמו sharp או Pillow.
- פונקציה מופעלת כשקובץ תמונה מועלה אל Cloud Storage.
- הפונקציה מורידה את התמונה ויוצרת גרסה ממוזערת שלה.
- הפונקציה כותבת את המיקום של התמונה הממוזערת למסד הנתונים, כדי שאפליקציית לקוח תוכל למצוא אותה ולהשתמש בה.
- הפונקציה מעלה את התמונה הממוזערת בחזרה אל Cloud Storage במיקום חדש.
- האפליקציה מורידה את הקישור לתמונה הממוזערת.
דוגמה לעיבוד תמונה מופיעה במדריך בנושא טיפול באירועים של Cloud Storage.
דוגמאות נוספות למשימות באצווה בענן של Firebase
- מחיקה תקופתית של חשבונות Firebase שלא בשימוש Node.js | Python.
- גיבוי אוטומטי של תמונות שהועלו Node.js | Python.
- שליחת אימייל בכמות גדולה למשתמשים.
- צבירה וסיכום של נתונים באופן תקופתי.
- עיבוד תור של עבודות בהמתנה.
שילוב עם שירותים וממשקי API של צד שלישי
Cloud Functions יכול לעזור לאפליקציה שלכם לפעול בצורה טובה יותר עם שירותים אחרים על ידי קריאה לממשקי API של אינטרנט וחשיפה שלהם. לדוגמה, אפליקציה שמשמשת לשיתוף פעולה בפיתוח יכולה לפרסם התחייבויות (commit) ב-GitHub בחדר צ'אט של קבוצת עבודה.
- משתמש דוחף קומיטים למאגר GitHub.
- פונקציית HTTPS מופעלת באמצעות GitHub webhook API.
- הפונקציה שולחת התראה על השמירה לערוץ Slack של הצוות.
דרכים נוספות לשילוב עם שירותים וממשקי API של צד שלישי
- משתמשים ב-Cloud Vision API של Google כדי לנתח ולתייג תמונות שהועלו.
- תרגום הודעות באמצעות Google Translate.
- משתמשים באימות בהתאמה אישית כדי לאפשר למשתמשים להיכנס לחשבון.
- שליחת בקשה ל-webhook בכתיבות של Realtime Database.
- הפעלת חיפוש טקסט מלא ברכיבי Realtime Database.
- עיבוד תשלומים ממשתמשים.
- יצירת מענה אוטומטי לשיחות טלפון ולהודעות SMS.
- ליצור צ'אט בוט באמצעות Google Assistant.