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

انتخاب پلاتفرم: iOS+ Android وب 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" تغییر خواهد کرد.