1

In summary I'm using Firebase Messaging Service and I'm trying to get my messages to show when the app is closed/killed. The weird problem is this sort of works. If I close the application and press send in the Azure Messaging Portal I'll get a notification as you should, however, that is the only notification I'll receive until I open the app and close it again and then I can receive one more. If the app is open I can spam send and I'll get all of the Notifications.

[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
[IntentFilter(new string[] { "com.google.android.c2dm.intent.RECEIVE" }, 
Categories = new string[] { "PACKAGEIDENTIFIER" })]
public class MyFirebaseMessagingService : FirebaseMessagingService
{
const string TAG = "MyFirstBaseMessagingService";
private int Notification_ID = 2;
public override void OnMessageReceived(RemoteMessage message)
{
    Log.Debug(TAG, "From: " + message.From);
    if (message.GetNotification() != null)
    {
        Log.Debug(TAG, "Notification Message Body: " + message.GetNotification().Body);
        SendNotification(message.Data);
    }
    else
    {
        SendNotification(message.Data);

    }
}

void SendNotification(IDictionary<string,string> message)
{
    Drawable drawable = ContextCompat.GetDrawable(this, Resource.Drawable.lsbu);
    Bitmap bitmap = ((BitmapDrawable)drawable).Bitmap;

    string title = message["title"];
    string body = message["body"];

    NotificationManager notificationManager = GetSystemService(NotificationService) as NotificationManager;
    string ChannelID =  GetString(Resource.String.LocalChannelID);
    string AppName = GetString(Resource.String.AppName);
    NotificationImportance Importance = NotificationImportance.Default;
    NotificationChannel mChannel = new NotificationChannel(ChannelID, AppName, Importance);
    notificationManager.CreateNotificationChannel(mChannel);

    Notification.Builder builder = new Notification.Builder(this, ChannelID)
            .SetWhen(DateTime.Now.Second)
            .SetSmallIcon(Resource.Drawable.miniwozzad)
            .SetLargeIcon(bitmap)
            .SetContentTitle(title)
            .SetContentText(body)
            .SetChannelId(ChannelID);

    var notification = builder.Build();
    notificationManager.Notify(Notification_ID, notification);
    Notification_ID++;
}

}

This being my payload in the Azure Test Portal

{"data":{"body": "Another big message", "test": 1, "title": "A Big Title2" }}

This is my FirebaseMessagingService class, I'm not sure what I'm missing here. Any help would be appreciated!

0 Answers0