دریافت پیام در برنامه‌های Unity

انتخاب پلاتفرم: iOS+ Android Web Flutter Unity C++‎


برای دریافت پیام، برنامه شما باید یک برگشت تماس به Firebase.Messaging.FirebaseMessaging.MessageReceived مدیر رویداد اختصاص دهد.

‫MessageReceived رویداد

با ملغی کردن اختصاص دادن تماس برگشتی به 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" تغییر خواهد کرد.