| בחירת פלטפורמה: | iOS+ Android Web Flutter Unity C++ |
כדי לקבל הודעות במורד הזרם, כל אפליקציית לקוח צריכה להטמיע את השיטות (methods) ב-API firebase::messaging::Listener.
אתחול FCM
כדי להשתמש ב-FCM כדי לקבל גישה לאסימון הרישום או לקבל הודעות, צריך לאתחל אותו.
כדי לאתחל את FCM, מפעילים את הפונקציה
::firebase::messaging::Initialize
ומספקים לה את האובייקט ::firebase::App וגם הטמעה של המחלקה
::firebase::messaging::Listener.
MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);
גישה לטוקן הרישום
בהפעלה הראשונית של האפליקציה, FCM SDK יוצר טוקן רישום עבור מופע אפליקציית הלקוח. אם רוצים לטרגט מכשירים בודדים או ליצור קבוצות מכשירים ל-FCM, צריך לגשת לטוקן הזה.
אפשר לגשת לערך של הטוקן באמצעות הפונקציה הווירטואלית ::firebase::messaging::Listener::OnTokenReceived.
void OnTokenReceived(const char* token) {
LogMessage("The registration token is `%s`", token);
// TODO: If necessary send token to application server.
}
קבלת הודעות וטיפול בהן
כדי לקבל הודעות, מחלקת Listener צריכה להטמיע את הפונקציה הווירטואלית OnMessage.
החלפת OnMessage
אם מחליפים את השיטה ::firebase::messaging::Listener::OnMessage, אפשר לבצע פעולות על סמך ההודעה שהתקבלה ולקבל את נתוני ההודעה:
void OnMessage(const ::firebase::messaging::Message& message) {
LogMessage(TAG, "From: %s", message.from.c_str());
LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}
ההודעות יכולות לייצג סוגים שונים של נתונים נכנסים. ברוב המקרים, ההודעות נשלחות לאפליקציה אחרי שהמפתח יוזם אותן. הודעות
נשלחות גם לאפליקציה כדי לייצג אירועים של שליחת הודעות, אירועים של שגיאות בשליחת הודעות ואירועים של מחיקת הודעות. כדי להבדיל בין האירועים המיוחדים האלה, צריך לבדוק את השדה Message::message_type.
ההודעות נמחקו
האירוע הזה נשלח לאפליקציה כששרת FCM מוחק הודעות בהמתנה.
המינוי של Message::message_type יהיה "deleted_messages". יכול להיות שההודעות יימחקו בגלל:
יותר מדי הודעות מאוחסנות בשרת FCM.
מצב כזה יכול לקרות כשהשרתים של אפליקציה שולחים הרבה הודעות שלא ניתן לכווץ לשרתים של FCM בזמן שהמכשיר במצב אופליין.
המכשיר לא התחבר במשך זמן רב ושרת האפליקציה שלח לאחרונה (במהלך 4 השבועות האחרונים) הודעה לאפליקציה במכשיר הזה.
מומלץ שהאפליקציה תבצע סנכרון מלא עם שרת האפליקציה אחרי קבלת השיחה הזו.