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