סקירה כללית של הארכיטקטורה של FCM

‫FCM מסתמך על קבוצת הרכיבים הבאה שיוצרים, מעבירים ומקבלים הודעות:

  1. כלים ליצירה או לבנייה של בקשות להודעות. הכלי "ניסוח מסרים" (Notifications Composer) מספק אפשרות מבוססת-GUI ליצירת בקשות להתראות. כדי להשיג אוטומציה מלאה ותמיכה בכל סוגי ההודעות, צריך ליצור בקשות להודעות בסביבת שרת מהימנה שתומכת ב-Firebase Admin SDK או בפרוטוקול השרת של FCM. הסביבה הזו יכולה להיות Cloud Functions for Firebase,‏ App Engine או שרת האפליקציה שלכם.

    תרשים של שלוש שכבות הארכיטקטורה שמתוארות בדף הזה.

  2. ה-backend של FCM, שבין היתר מקבל בקשות להודעות, מבצע fanout של הודעות באמצעות נושאים ויוצר מטא-נתונים של הודעות, כמו מזהה ההודעה.

  3. שכבת תעבורה ברמת הפלטפורמה, שמנתבת את ההודעה למכשיר היעד, מטפלת בשליחת ההודעה ומחילת הגדרה ספציפית לפלטפורמה במקרים המתאימים. שכבת התעבורה כוללת:

    • שכבת התעבורה של Android‏ (ATL) למכשירי Android עם Google Play Services
    • שירות ההתראות של Apple‏ (APNs) למכשירי Apple
    • פרוטוקול של התראות פוש באפליקציות אינטרנט

  4. ‫FCM SDK במכשיר של המשתמש, שבו מוצגת ההתראה או שההודעה מטופלת בהתאם למצב של האפליקציה (בחזית או ברקע) ולכל לוגיקה רלוונטית של האפליקציה.

תהליך מחזור החיים

  • רישום מכשירים לקבלת הודעות מ-FCM. מופע של אפליקציית לקוח נרשם לקבלת הודעות, ומקבל אסימון רישום שמזהה באופן ייחודי את מופע האפליקציה.
  • שליחה וקבלה של הודעות downstream.
    • שלח הודעה. שרת האפליקציה שולח הודעות לאפליקציית הלקוח:
      1. ההודעה מנוסחת בכלי לניסוח מסרים (Notifications Composer) או בסביבה מהימנה, ובקשת ההודעה נשלחת לקצה העורפי של FCM.
      2. ה-FCM backend מקבל את הבקשה להודעה, יוצר מזהה הודעה ומטא-נתונים אחרים, ושולח אותם לשכבת התעבורה הספציפית לפלטפורמה.
      3. כשהמכשיר מחובר לאינטרנט, ההודעה נשלחת למכשיר דרך שכבת ההעברה הספציפית לפלטפורמה.
      4. במכשיר, אפליקציית הלקוח מקבלת את ההודעה או את ההתראה.