צד השרת של Firebase Cloud Messaging מורכב משני רכיבים:
- FCM הקצה העורפי שסופק על ידי Google.
- שרת האפליקציה או סביבת שרת מהימנה אחרת שבה פועל הלוגיקה של השרת, כמו Cloud Functions for Firebase או סביבות ענן אחרות שמנוהלות על ידי Google.
שרת האפליקציה או סביבת השרת המהימנה שולחים בקשות להודעות לקצה העורפי של FCM, שמעביר את ההודעות לאפליקציות הלקוח שפועלות במכשירי המשתמשים.
באמצעות פרוטוקולי שרת האפליקציות Firebase Admin SDK או FCM, אתם יכולים ליצור בקשות להודעות ולשלוח אותן ליעדים מהסוגים הבאים:
- שם הנושא
- תנאי
- FCM טוקן רישום
- שם קבוצת המכשירים (הוצא משימוש, יוסר ב-29 בספטמבר 2027)
אתם יכולים לשלוח הודעות עם מטען ייעודי (payload) של התראות שמורכב משדות מוגדרים מראש, מטען ייעודי של נתונים מהשדות שהגדרתם בעצמכם או הודעה שמכילה את שני סוגי המטענים הייעודיים. למידע נוסף, קראו את המאמר סוגי הודעות.
הדרישות לסביבת שרת מהימנה
סביבת שרת האפליקציה צריכה לעמוד בקריטריונים הבאים:
- יכולת לשלוח בקשות הודעה בפורמט תקין לקצה העורפי של FCM.
- יכולת לטפל בבקשות ולשלוח אותן מחדש באמצעות השהיה מעריכית לפני ניסיון חוזר.
- אפשר לאחסן בצורה מאובטחת פרטי הרשאה של השרת וטוקנים של רישום לקוח.
פרטי הכניסה הנדרשים לפרויקט ב-Firebase
בהתאם לתכונות של FCM שאתם מטמיעים, יכול להיות שתצטרכו את פרטי הכניסה הבאים מהפרויקט ב-Firebase:
| פרטי כניסה | תיאור |
|---|---|
| מזהה פרויקט | מזהה ייחודי של הפרויקט ב-Firebase, שמשמש בבקשות לנקודת הקצה של FCM v1 HTTP. הערך הזה זמין בחלונית Settings במסוף Firebase. |
| טוקן רישום | מחרוזת טוקן ייחודית שמזהה כל מופע של אפליקציית לקוח. אסימון הרישום נדרש להעברת הודעות למופע יחיד של אפליקציה ולקבוצת מכשירים. חשוב לזכור שצריך לשמור את טוקני הרישום בסוד. |
| מזהה השולח | ערך מספרי ייחודי שנוצר כשיוצרים את הפרויקט ב-Firebase, וזמין בכרטיסייה Cloud Messaging בחלונית Settings (הגדרות) במסוף Firebase. מזהה השולח זהה למספר הפרויקט. מזהה השולח משמש לזיהוי כל שולח שיכול לשלוח הודעות לאפליקציית הלקוח. |
| טוקן גישה | אסימון OAuth 2.0 לטווח קצר שמאשר בקשות ל-HTTP v1 API. האסימון הזה משויך לחשבון שירות ששייך לפרויקט Firebase שלכם. כדי ליצור טוקני גישה ולבצע רוטציה שלהם, פועלים לפי השלבים שמפורטים במאמר הרשאת שליחת בקשות. |
בחירת אפשרות לשרת
צריך להחליט איך ליצור אינטראקציה עם שרתי FCM: באמצעות Firebase Admin SDK או באמצעות FCM HTTP v1 API. השיטה המומלצת היא Firebase Admin SDK, כי היא תומכת בשפות תכנות פופולריות וכוללת שיטות נוחות לטיפול באימות ובהרשאה.
האפשרויות לאינטראקציה עם שרתי FCM כוללות:
Firebase Admin SDK, עם תמיכה ב-Node, Java, Python, C# ו-Go.
FCM HTTP v1 API, ממשק API בארכיטקטורת REST עם הרשאה מאובטחת ויכולות גמישות להעברת הודעות בפלטפורמות שונות (Firebase Admin SDK מבוסס על הפרוטוקול הזה ומספק את כל היתרונות המובנים שלו).
Firebase Admin SDK
ה-Firebase Admin SDK מטפל באימות מול ה-backend ומאפשר לשלוח הודעות ולנהל מינויים לנושאים. עם Firebase Admin SDK, אתם יכולים:
- שליחת הודעות למופעים ספציפיים של אפליקציות
- שליחת הודעות לנושאים ולמשפטי תנאי שתואמים לנושא אחד או יותר
- שליחת הודעות לקבוצות מכשירים
- הרשמה של מופעי אפליקציות לנושאים וביטול ההרשמה שלהם
- יצירת מטען ייעודי (payload) של הודעות שמותאם לפלטפורמות יעד שונות
כדי להגדיר את Firebase Admin SDK, קראו את המאמר הוספת Firebase Admin SDK לשרת. אם כבר יש לכם פרויקט ב-Firebase, התחילו מהשלב הוספת ה-SDK. בנוסף, חשוב לוודא שהפעלתם את Firebase Cloud Messaging API (V1) בדף ההגדרות של העברת הודעות בענן בפרויקט. אחרי שמתקינים את Firebase Admin SDK, אפשר להתחיל לכתוב לוגיקה כדי ליצור בקשות שליחה.
FCM HTTP v1 API
FCM מספקת את FCM HTTP v1 API למפתחים שמעדיפים פרוטוקול שרת גולמי.
כדי לשלוח הודעה, שרת האפליקציה שולח בקשת POST עם כותרת HTTP וגוף HTTP שמורכב מצמדי מפתח/ערך בפורמט JSON. פרטים על האפשרויות של הכותרת והגוף מופיעים במאמר שליחת הודעה באמצעות FCM HTTP v1 API.