הודעות שלא ניתנות לכיווץ או לכיווץ

הודעה שלא ניתן לכווץ היא הודעה שכל אחת מהן נמסרת למכשיר. הודעה שלא ניתן לכווץ מכילה תוכן שימושי. הודעה שניתן לכווץ, כמו 'פינג' ללא תוכן לאפליקציה לנייד כדי ליצור קשר עם השרת ולאחזר נתונים.

דוגמאות לתרחישי שימוש אופייניים בהודעות שלא ניתן לכווץ: הודעות צ'אט או הודעות קריטיות. ב-Android, יש מגבלה של 100 הודעות שאפשר לאחסן בלי לכווץ אותן. אם תגיעו למגבלה, כל ההודעות השמורות יימחקו. כשהמכשיר חוזר למצב אונליין, הוא מקבל הודעה מיוחדת שמציינת שהגעתם למגבלה. לאחר מכן האפליקציה יכולה לטפל במצב על ידי בקשת סנכרון מלא משרת האפליקציה.

הודעה שניתן לכווץ היא הודעה שאולי תוחלף בהודעה חדשה אם היא עדיין לא נמסרה למכשיר.

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

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

הודעות בנושאים ללא מטען ייעודי (Payload) ניתנות לכיווץ כברירת מחדל. הודעות ההתראה תמיד ניתנות לכיווץ, והמערכת תתעלם מהפרמטר collapse_key.

באיזה מהם כדאי להשתמש?

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

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