یک پیام غیر قابل جمع شدن به این معنی است که هر پیام به صورت جداگانه به دستگاه تحویل داده میشود. یک پیام غیر قابل جمع شدن محتوای مفیدی را ارائه میدهد. در حالی که یک پیام قابل جمع شدن مانند یک "پینگ" بدون محتوا به یک برنامه تلفن همراه برای تماس با سرور برای دریافت دادهها است.
برخی از موارد استفاده معمول پیامهای غیرقابلجمع، پیامهای چت یا پیامهای حیاتی هستند. برای اندروید، محدودیت ۱۰۰ پیام وجود دارد که میتوان بدون جمع شدن ذخیره کرد. در صورت رسیدن به این محدودیت، تمام پیامهای ذخیره شده حذف میشوند. هنگامی که دستگاه دوباره آنلاین میشود، یک پیام ویژه دریافت میکند که نشان میدهد به محدودیت رسیدهایم. سپس برنامه میتواند با درخواست معمول همگامسازی کامل از سرور برنامه، وضعیت را مدیریت کند.
پیام جمعشونده پیامی است که اگر هنوز به دستگاه تحویل داده نشده باشد، میتوان آن را با پیام جدیدی جایگزین کرد.
یک مورد استفاده رایج از پیامهای قابل جمع شدن: پیامهایی که برای همگامسازی دادهها با سرور به یک برنامه تلفن همراه استفاده میشوند. به عنوان مثال، یک برنامه ورزشی میتواند کاربران را با آخرین امتیاز بهروزرسانی کند. فقط جدیدترین پیام مرتبط است.
برای علامتگذاری یک پیام به عنوان پیام قابل جمع شدن در اندروید، پارامتر collapse_key را در payload پیام قرار دهید. به طور پیشفرض، کلید جمع شدن، نام بسته برنامه ثبت شده در کنسول Firebase است. سرور FCM میتواند همزمان چهار پیام قابل جمع شدن مختلف را در هر دستگاه ذخیره کند که هر کدام کلید جمع شدن متفاوتی دارند. اگر از این تعداد تجاوز کنید، FCM فقط چهار کلید جمع شدن را نگه میدارد، بدون هیچ عامل تعیینکنندهای که کدام کلیدها نگه داشته شوند.
پیامهای تاپیک بدون بار مفید (payload) به طور پیشفرض قابل جمع شدن هستند. پیامهای اعلان همیشه قابل جمع شدن هستند و پارامتر collapse_key را نادیده میگیرند.
از کدام باید استفاده کنم؟
پیامهای جمعشونده از نظر عملکرد، گزینه ارجح هستند، مشروط بر اینکه برنامه شما نیازی به استفاده از پیامهای غیرجمعشونده نداشته باشد. با این حال، اگر از پیامهای جمعشونده استفاده میکنید، به یاد داشته باشید که FCM فقط اجازه میدهد حداکثر چهار کلید جمعشونده مختلف توسط FCM برای هر توکن ثبت نام در هر زمان معین استفاده شود.
| از سناریو استفاده کنید | نحوه ارسال | |
|---|---|---|
| غیرقابل جمع شدن | هر پیام برای برنامه کلاینت مهم است و باید تحویل داده شود. | به جز پیامهای اعلان، همه پیامها به طور پیشفرض غیرقابل جمع شدن هستند. |
| تاشو | وقتی یک پیام جدیدتر وجود دارد که یک پیام قدیمیتر و مرتبط را که برای برنامه کلاینت نامربوط است، رندر میکند، FCM پیام قدیمیتر را جایگزین میکند. به عنوان مثال: پیامهای اعلان قدیمی. | پارامتر مناسب را در درخواست پیام خود تنظیم کنید:
|