קבלת הודעות באפליקציית לקוח C++

כדי לקבל הודעות פשוטות במורד הזרם, כל אפליקציית לקוח צריכה להטמיע את ב-methods firebase::messaging::Listener API.

אתחול של FCM

כדי לקבל גישה לאסימון הרישום או לקבל הודעות באמצעות FCM, צריך לאתחל אותו.

כדי לאתחל את FCM, צריך להתקשר ::firebase::messaging::Initialize ולספק אותו ::firebase::App של אובייקט, וגם יישום של ::firebase::messaging::Listener בכיתה.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

גישה לטוקן הרישום

בזמן ההפעלה הראשונית של האפליקציה, ה-SDK של FCM יוצר רישום אסימון למופע של אפליקציית הלקוח. אם רוצים לטרגט למכשירים יחידים, או יצירת קבוצות מכשירים בשביל 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.
}

קבלת הודעות וטיפול בהן

כדי לקבל הודעות, מחלקת המאזינים חייבת להטמיע את 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());
}

הודעות יכולות לייצג סוגים שונים של נתונים נכנסים. ברוב המקרים, ההודעות נשלחות לאפליקציה אחרי שהמפתח יוזם אותן. Google Messages נשלחות גם לאפליקציה כדי לייצג אירועים שנשלחו, הודעות שגיאה או הודעות שגיאה. אירועים והודעות שנמחקו. ניתן להבדיל בין האירועים המיוחדים האלה על ידי בדיקת השדה Message::message_type.

הודעות נמחקו

נשלחת לאפליקציה כשההודעות בהמתנה נמחקות בשרת FCM. Message::message_type יהיה "deleted_messages". יכול להיות שההודעות יימחקו to:

  1. יותר מדי הודעות מאוחסנות בשרת FCM.

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

  2. המכשיר לא היה מחובר במשך זמן רב ושרת האפליקציה שלח לאחרונה (ב-4 השבועות האחרונים) הודעה לאפליקציה במכשיר הזה.

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