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

כדי לקבל הודעות פשוטות במורד הזרם, כל אפליקציית לקוח צריכה ליישם את השיטות ב- 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);

גש לאסימון הרישום

עם ההפעלה הראשונית של האפליקציה שלך, 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" . ייתכן שהודעות יימחקו עקב:

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

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

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

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