একটি C++ ক্লায়েন্ট অ্যাপে বার্তা পান

সাধারণ ডাউনস্ট্রিম বার্তাগুলি পেতে, প্রতিটি ক্লায়েন্ট অ্যাপকে 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.
}

বার্তা গ্রহণ করুন এবং পরিচালনা করুন

বার্তাগুলি পেতে, আপনার শ্রোতা শ্রেণীকে অবশ্যই 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 সপ্তাহের মধ্যে) সেই ডিভাইসে অ্যাপটিতে একটি বার্তা পাঠিয়েছে।

    এই কলটি পাওয়ার পরে অ্যাপটি অ্যাপ সার্ভারের সাথে সম্পূর্ণ সিঙ্ক করার পরামর্শ দেওয়া হয়।