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.