על סמך מודל הפרסום/הרשמה, שליחת הודעות לפי נושא ב-FCM מאפשרת לכם לשלוח הודעה לכמה מכשירים שהביעו הסכמה לקבלת הודעות בנושא מסוים. אתם כותבים את ההודעות לנושאים לפי הצורך, ו-FCM מטפל בניתוב ובמסירה מהימנה של ההודעה למכשירים הנכונים.
לדוגמה, משתמשים באפליקציה מקומית לחיזוי גאות ושפל יכולים להביע הסכמה לקבלת התראות בנושא 'זרמי גאות ושפל' ולקבל התראות על תנאים אופטימליים לדיג במים מלוחים באזורים מסוימים. משתמשים באפליקציית ספורט יכולים להירשם לקבלת עדכונים אוטומטיים על תוצאות של משחקים בשידור חי של הקבוצות האהובות עליהם.
כמה דברים שכדאי לזכור לגבי נושאים:
שליחת הודעות בנושאים מתאימה במיוחד לתוכן כמו מזג אוויר או מידע אחר שזמין לכולם.
הודעות בנושאים מותאמות לזרימת נתונים במקום לזמן אחזור. כדי לשלוח הודעות במהירות ובבטחה למכשירים בודדים או לקבוצות קטנות של מכשירים, מטרגטים את ההודעות לטוקני רישום ולא לנושאים.
אם אתם צריכים לשלוח הודעות לכמה מכשירים לכל משתמש, כדאי לכם להשתמש בהודעות לקבוצות של מכשירים בתרחישי השימוש האלה.
אפשר להירשם ללא הגבלה לכל נושא. עם זאת, ב-FCM יש הגבלות בתחומים הבאים:
- מכונה אחת של אפליקציה יכולה להירשם לעד 2,000 נושאים.
- אם אתם משתמשים בייבוא באצווה כדי להירשם למופעי אפליקציות, כל בקשה מוגבלת ל-1,000 מופעי אפליקציות.
- תדירות המינויים החדשים מוגבלת לכל פרויקט. אם תשלחו יותר מדי בקשות להרשמה בפרק זמן קצר, שרתי FCM ישיבו עם
429 RESOURCE_EXHAUSTED
('המכסה שלכם חריגה'). ניסיון חוזר עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff).
הרשמה של אפליקציית הלקוח לנושא
אפליקציות לקוח יכולות להירשם לכל נושא קיים או ליצור נושא חדש. כשאפליקציית לקוח נרשמת לנושא חדש (שעדיין לא קיים בפרויקט Firebase שלכם), נוצר נושא חדש בשם הזה ב-FCM וכל לקוח יכול להירשם אליו לאחר מכן.
כדי להירשם לנושא, קוראים לפונקציה subscribeToTopic()
עם שם הנושא. השיטה הזו מחזירה Future
, שמתקבל כאשר המינוי הצליח:
await FirebaseMessaging.instance.subscribeToTopic("topic");
כדי לבטל את ההרשמה, קוראים ל-unsubscribeFromTopic()
עם שם הנושא.
אין תמיכה ב-subscribeToTopic()
וב-unsubscribeFromTopic()
בלקוחות אינטרנט. במאמר שליחת הודעות לנושאים באינטרנט או ב-JavaScript מוסבר איך מנהלים את המינויים של משתמשי אינטרנט.