आसान डाउनस्ट्रीम मैसेज पाने के लिए, हर क्लाइंट ऐप्लिकेशन को
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 सर्वर को ऐसे कई मैसेज भेजें जिन्हें छोटा नहीं किया जा सकता.
डिवाइस लंबे समय से कनेक्ट नहीं है और ऐप्लिकेशन सर्वर ने हाल ही में (पिछले चार हफ़्तों में) उस डिवाइस पर ऐप्लिकेशन को मैसेज भेजा है.
हमारा सुझाव है कि यह कॉल मिलने के बाद, ऐप्लिकेशन ऐप्लिकेशन सर्वर के साथ पूरी तरह से सिंक हो जाए.