סוגי הודעות של העברת הודעות בענן ב-Firebase

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

  • הודעות התראה, בדומה ל "הודעות תצוגה", מטופלות על ידי ה-SDK של FCM באופן אוטומטי.
  • הודעות נתונים, שמטופלות על ידי אפליקציית הלקוח.

הודעות התראה מכילות קבוצה מוגדרת מראש של מפתחות שגלויים למשתמשים, ויכולות להכיל מטען נתונים אופציונלי. לעומת זאת, הודעות נתונים מכילות רק את צמדי המפתח/ערך המותאמים אישית שהוגדרו על ידי המשתמש. גודל המטען הייעודי (payload) המקסימלי לשני סוגי ההודעות הוא 4,096 בייטים, חוץ ממקרים שבהם שולחים הודעות ממסוף Firebase, שבהם יש מגבלת תווים של 1,000.

שימוש בתרחיש איך שולחים
הודעה לידיעה ‫FCM SDK מציג את ההודעה במכשירים של משתמשי קצה בשם אפליקציית הלקוח כשהיא פועלת ברקע. אחרת, אם האפליקציה פועלת בחזית כשההתראה מתקבלת, קוד האפליקציה קובע את ההתנהגות.
  1. בסביבה מהימנה כמו Cloud Functions או שרת האפליקציה, משתמשים ב-Firebase Admin SDK או ב-HTTP v1 API. מגדירים את המפתח notification. יכול להיות שיש מטען ייעודי (payload) אופציונלי של נתונים. תמיד מתקפלת.

    אפשר לעיין ב דוגמאות להתראות שמוצגות ולשלוח מטען ייעודי (payload) של בקשות.

  2. משתמשים ב ניסוח מסרים (Notifications Composer): מזינים את הטקסט של ההודעה, את הכותרת וכו', ושולחים. אפשר להוסיף מטען ייעודי (payload) אופציונלי של נתונים באמצעות נתונים בהתאמה אישית.
הודעת נתונים אפליקציית הלקוח אחראית לעיבוד הודעות הנתונים. הודעות נתונים מכילות רק צמדי מפתח/ערך מותאמים אישית, ללא שמות מפתחות שמורים (ראו בהמשך). בסביבה מהימנה כמו Cloud Functions או שרת האפליקציה, משתמשים ב-Firebase Admin SDK או ב-HTTP v1 API. בבקשת השליחה, מגדירים את המפתח data.

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

אתם יכולים להשתמש בהודעות נתונים כשאתם רוצים לעבד את ההודעות באמצעות קוד משלכם באפליקציית הלקוח.

הודעות לידיעה

אתם יכולים לשלוח הודעות באמצעות מסוף Firebase, Firebase Admin SDK או FCM HTTP v1 API. מסוף Firebase מספק בדיקות A/B שמבוססות על ניתוח נתונים, כדי לעזור לכם לשפר את הודעות ההתראה.

כדי לשלוח הודעות התראה באמצעות Firebase Admin SDK או FCM HTTP v1 API, צריך להגדיר את המפתח notification עם קבוצת האפשרויות המוגדרת מראש של זוגות מפתח/ערך של הודעת ההתראה. אתם יכולים להשתמש בדוגמה הבאה כדי לעצב הודעה באפליקציית צ'אט:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

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

כדי לראות את הרשימה המלאה של המפתחות המוגדרים מראש שאפשר להשתמש בהם כדי ליצור הודעות, אתם יכולים לעיין במאמרי העזרה של אובייקט ההתראה ב-FCM HTTP v1 API.

הודעות נתונים

אתם יכולים להשתמש ב-payload של FCM data כדי להטמיע את תוכנית ההצפנה שתבחרו. חשוב לוודא שלא משתמשים במילים שמורות בצמדי מפתח/ערך מותאמים אישית. מילים שמורות כוללות את from, message_type או כל מילה שמתחילה ב-google., gcm. או gcm.notification..

בדוגמה הבאה מוצג שימוש בשדה הנתונים הנפוץ או ברמת העליונה, שמתפרש על ידי לקוחות בכל הפלטפורמות שמקבלות את ההודעה. בכל פלטפורמה, אפליקציית הלקוח מקבלת את המטען הייעודי (payload) של הנתונים בפונקציית קריאה חוזרת (callback)

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

הודעות התראה עם מטען נתונים אופציונלי

אפשר לשלוח הודעות התראה שמכילות מטען ייעודי אופציונלי של צמדי מפתח/ערך מותאמים אישית באופן פרוגרמטי או באמצעות מסוף Firebase. בכלי ליצירת הודעות, משתמשים בשדות נתונים בהתאמה אישית שבאפשרויות מתקדמות.

התנהגות האפליקציה כשמתקבלות הודעות שכוללות גם מטען ייעודי (payload) של התראות וגם מטען ייעודי של נתונים תלויה בשאלה אם האפליקציה פועלת ברקע או בחזית – כלומר, אם היא פעילה או לא בזמן הקבלה.

  • כשהאפליקציה פועלת ברקע, היא מקבלת את המטען הייעודי (payload) של ההתראה במגש ההתראות, ומטפלת במטען הייעודי של הנתונים רק כשהמשתמש מקיש על ההתראה.
  • כשהאפליקציה פועלת בחזית, היא מקבלת אובייקט של הודעה עם שני המטענים הייעודיים (payloads) זמינים.

הנה הודעה בפורמט JSON שמכילה גם את המפתח notification וגם את המפתח data:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }
}