בעזרת Cloud Functions, מפתחים יכולים לגשת לאירועים ב-Firebase וב-Google Cloud, יחד עם עוצמת מחשוב שניתן להתאמה להרצת קוד בתגובה לאירועים האלה. צפוי שאפליקציות Firebase ישתמשו ב-Cloud Functions בדרכים ייחודיות כדי לעמוד בדרישות הייחודיות שלהן, אבל תרחישים לדוגמה אופייניים עשויים להיכלל בתחומים הבאים:
- לשלוח התראות למשתמשים כשמשהו מעניין קורה.
- ניקוי ותחזוקה של מסדי הנתונים
- ביצוע משימות אינטנסיביות בענן במקום באפליקציה.
- שילוב עם ממשקי API ושירותים של צד שלישי.
זה הזמן לעיין בתרחישים לדוגמה ובדוגמאות של כל קטגוריה שמעניינת אתכם, ולאחר מכן להמשיך למדריך לתחילת העבודה או למדריכים ספציפיים בנושא אירועי אימות, אירועי ניתוח נתונים ועוד.
שליחת התראות למשתמשים כשמשהו מעניין קורה
המפתחים יכולים להשתמש ב-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 בתגובה להתנהגות המשתמש, כדי לשמור על המערכת במצב הרצוי. לדוגמה, אפשר לעקוב אחרי אירועי כתיבה ולשנות את הפורמט (למשל, שינוי לטקסט מודגש) של מחרוזות מסוימות בהודעות של משתמשים. כך זה יכול לעבוד:
- פונקציית הטיפול באירועים של מסד הנתונים מקשיבה לאירועי כתיבה בנתיב ספציפי, ומאחזרת את נתוני האירועים שמכילים את הטקסט של ההודעות.
- הפונקציה מעבדת את הטקסט כדי לשנות מחרוזות לאותיות רישיות.
- הפונקציה כותבת את הטקסט המעודכן בחזרה למסד הנתונים.
כדי לבדוק את קוד התקינות, אפשר לעיין בקוד לדוגמה ב-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 באינטרנט. לדוגמה, אפליקציה שמשמשת לשיתוף פעולה בפיתוח יכולה לפרסם התחייבויות ל-GitHub בחדרי צ'אט של קבוצות עבודה.
- משתמש מעביר התחייבויות למאגר ב-GitHub.
- פונקציית HTTPS מופעלת דרך GitHub webhook API.
- הפונקציה שולחת התראה על ההתחייבות לערוץ Slack של צוות.
דרכים נוספות לשילוב עם שירותים וממשקי API של צד שלישי
- שימוש ב-Cloud Vision API של Google כדי לנתח ולתייג תמונות שהועלו.
- תרגום הודעות באמצעות Google Translate.
- להשתמש באימות מותאם אישית כדי להיכנס למשתמשים.
- שליחת בקשה ל-webhook בכתיבה של Realtime Database.
- הפעלת חיפוש טקסט מלא ברכיבי Realtime Database.
- עיבוד תשלומים ממשתמשים.
- ליצור תשובות אוטומטיות לשיחות טלפון ולהודעות SMS.
- יצירת צ'אט בוט באמצעות Google Assistant.