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

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

  • הודעות התראה, בדומה ל "הודעות לתצוגה", מטופלות על ידי ה-SDK של FCM באופן אוטומטי. (ב-Android עם AndroidConfigV2, צריך להשתמש ב-RemoteNotification לכל ההודעות שמוצגות למשתמש כהתראה, כדי שהן יישלחו בלי עיכוב מכוון. ההתראות מוצגות באופן אוטומטי גם אם האפליקציה פועלת בחזית וגם אם היא פועלת ברקע, אלא אם הן הושתקו באופן מפורש בקוד הלקוח).
  • הודעות נתונים, שמטופלות על ידי אפליקציית הלקוח.

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

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

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

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

אתם יכולים להשתמש בהודעות התראה כשאתם רוצים ש-FCM SDK יטפל בהצגת התראה באופן אוטומטי כשהאפליקציה פועלת ברקע. FCM יכול לשלוח הודעה עם נתונים אופציונליים. במקרים כאלה, 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"
    }
  }
}

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

אתם יכולים לשלוח הודעות התראה שמכילות מטען ייעודי (payload) אופציונלי של צמדי מפתח/ערך בהתאמה אישית באופן פרוגרמטי או באמצעות מסוף 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"
    }
  }
}