برای دریافت پیامهای پاییندستی ساده، هر برنامه مشتری باید متدها را در 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"
خواهد بود. پیام ها ممکن است به دلایل زیر حذف شوند:
تعداد زیادی پیام در سرور FCM ذخیره شده است.
زمانی که سرورهای یک برنامه در حالت آفلاین بودن دستگاه، تعداد زیادی پیام غیرقابل جمع شدن را به سرورهای FCM ارسال می کنند، این اتفاق می افتد.
دستگاه مدت زیادی است که وصل نشده است و سرور برنامه اخیراً (در 4 هفته گذشته) پیامی به برنامه روی آن دستگاه ارسال کرده است.
توصیه می شود پس از دریافت این تماس، برنامه یک همگام سازی کامل با سرور برنامه انجام دهد.