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