با استفاده از Firebase Cloud Messaging پیام ها را دریافت کنید

این راهنما نحوه تنظیم Firebase Cloud Messaging را در برنامه‌های موبایل و کلاینت وب شما شرح می‌دهد تا بتوانید پیام‌ها را به طور قابل اعتمادی دریافت کنید.

برای دریافت پیام‌ها، برنامه شما باید یک تابع فراخوانی (callback) به هندلر رویداد Firebase.Messaging.FirebaseMessaging.MessageReceived اختصاص دهد.

رویداد MessageReceived

با لغو اختصاص یک callback به Firebase.Messaging.FirebaseMessaging.MessageReceived می‌توانید اقداماتی را بر اساس پیام دریافتی انجام دهید و داده‌های پیام را دریافت کنید:

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
  UnityEngine.Debug.Log("From: " + e.Message.From);
  UnityEngine.Debug.Log("Message ID: " + e.Message.MessageId);
}

پیام‌ها می‌توانند انواع مختلفی از داده‌های ورودی را نشان دهند. معمولاً پیام‌ها پس از شروع توسط توسعه‌دهنده به برنامه ارسال می‌شوند. پیام‌ها همچنین برای نمایش رویدادهای ارسال پیام، رویدادهای خطای ارسال پیام و رویدادهای حذف پیام به برنامه شما ارسال می‌شوند. این رویدادهای ویژه را می‌توان با بررسی فیلد Message::message_type از هم متمایز کرد.

پیام‌های حذف شده

وقتی سرور FCM پیام‌های در حال انتظار را حذف می‌کند، به برنامه شما ارسال می‌شود. Message::message_type "deleted_messages" خواهد بود. پیام‌ها ممکن است به دلایل زیر حذف شوند:

  1. تعداد پیام‌های ذخیره شده در سرور FCM بسیار زیاد است.

    این می‌تواند زمانی رخ دهد که سرورهای یک برنامه، در حالی که دستگاه آفلاین است، دسته‌ای از پیام‌های غیرقابل‌جمع را به سرورهای FCM ارسال کنند.

  2. دستگاه مدت زیادی است که متصل نشده و سرور برنامه اخیراً (طی ۴ هفته گذشته) پیامی به برنامه روی آن دستگاه ارسال کرده است.

    توصیه می‌شود که برنامه پس از دریافت این تماس، همگام‌سازی کامل را با سرور برنامه انجام دهد.

ارسال رویداد

زمانی فراخوانی می‌شود که یک پیام بالادستی با موفقیت به FCM ارسال شود. MessageType "send_event" خواهد بود.

ارسال خطا

زمانی فراخوانی می‌شود که خطایی در ارسال پیام بالادستی رخ داده باشد. MessageType "send_error" خواهد بود.