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