הודעה שלא ניתן לכווץ היא הודעה שמועברת למכשיר בנפרד. הודעה שלא ניתן לכווץ מכילה תוכן שימושי. הודעה שניתן לכווץ, כמו 'פינג' ללא תוכן לאפליקציה לנייד כדי ליצור קשר עם השרת ולאחזר נתונים.
דוגמאות לשימוש בהודעות שלא ניתן לכווץ הן הודעות צ'אט או הודעות קריטיות. ב-Android, יש מגבלה של 100 הודעות שאפשר לאחסן בלי לכווץ אותן. אם מגיעים למגבלה, כל ההודעות שנשמרו נמחקות. כשהמכשיר חוזר למצב אונליין, הוא מקבל הודעה מיוחדת שמציינת שהמגבלה הושגה. לאחר מכן האפליקציה יכולה לטפל במצב, בדרך כלל על ידי בקשת סנכרון מלא משרת האפליקציה.
הודעה שניתן לכווץ היא הודעה שאולי תוחלף בהודעה חדשה אם היא עדיין לא נמסרה למכשיר.
תרחיש נפוץ לשימוש בהודעות שניתן לכווץ הוא הודעות שמשמשות כדי להורות לאפליקציה לנייד לסנכרן נתונים מהשרת. דוגמה לכך היא אפליקציית ספורט שמעדכנת את המשתמשים בתוצאה האחרונה. רק ההודעה האחרונה רלוונטית.
כדי לסמן הודעה כהודעה שאפשר לכווץ ב-Android, צריך לכלול את הפרמטר collapse_key
במטען הייעודי (payload) של ההודעה. כברירת מחדל, מפתח הצמצום הוא שם חבילת האפליקציה
שרשום במסוף Firebase. שרת FCM יכול לאחסן בו-זמנית ארבע הודעות שונות שניתנות לכיווץ לכל מכשיר, כל אחת עם מפתח כיווץ שונה. אם חורגים מהמספר הזה, FCM שומר רק ארבעה מפתחות של צמצום, בלי לקבוע אילו מפתחות יישמרו.
הודעות בנושאים ללא מטען ייעודי (Payload) ניתנות לכיווץ כברירת מחדל. הודעות התראה תמיד ניתנות לצמצום, והמערכת תתעלם מהפרמטר collapse_key
.
באיזו מהן כדאי להשתמש?
הודעות שניתן לכווץ הן האפשרות המועדפת מבחינת ביצועים, בתנאי שהאפליקציה לא צריכה להשתמש בהודעות שלא ניתן לכווץ. עם זאת, אם משתמשים בהודעות שניתנות לכיווץ, חשוב לזכור ש-FCM מאפשרת שימוש במקסימום ארבעה מפתחות כיווץ שונים על ידי FCM לכל טוקן רישום בכל זמן נתון.
תרחיש שימוש | איך שולחים | |
---|---|---|
לא ניתן לכווץ | כל הודעה חשובה לאפליקציית הלקוח וצריך להעביר אותה. | חוץ מהודעות התראה, כל ההודעות לא ניתנות לכיווץ כברירת מחדל. |
ניתן לכיווץ | אם יש הודעה חדשה יותר שהופכת הודעה ישנה יותר שקשורה אליה ללא רלוונטית לאפליקציית הלקוח, FCM מחליפה את ההודעה הישנה יותר. לדוגמה: הודעות התראה לא עדכניות. | מגדירים את הפרמטר המתאים בבקשת ההודעה:
|