סביבת השרת ו-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. לפרטים על האפשרויות של הכותרת והגוף, ראו יצירת בקשות לשליחת שרת של אפליקציה