Firebase Cloud Messaging doesn't notify when application is running - firebase-cloud-messaging

I want to know why Firebase Cloud Messaging doesn't send notifications when the app is running?
I started my application and tried to send a message. When I closed my application, it notified me. But when and I opened it and sent another notification, it didn't notify me, but it did trigger onMessage.
Is it possible to notify me when my application is running?

Firebase Cloud Messaging has two types of messages: notification messages and data messages.
Data messages are used for delivering data to your app. They are always delivered to your application's onMessage handler.
Notification messages are used to show a notification to the user. When your app is active, the messages are delivered to its onMessage handler, so that you can display the notification inside the app. But when the app is not active, notification messages are handled by the system and not delivered to your app's onMessage handler.
It sounds like you're sending a notification message. If you always want the message to be delivered to your applications onMessage, you should send a data message instead.
Also see:
the Firebase documentation on message types
Firebase onMessageReceived not called when app in background

Related

How do I continue configuring FCM after registering the app?

To send a message or call from your app, you need to Wake up the receiving phone from DOZE mode. Tell me how and where to create a message with FCM data, without notification, without your server and without an admin.

Error Message while receiving GCM

When my service worker invokes a secured API that returns content, I do receive an error message, such that The Site has been updated in background. Can anyone please help me out ?
Based from this link, the message This site has been updated in the background is a forced message from the Chrome browser when the SDK cannot fetch the notification contents to retrieve. Notification contents are not sent to our background worker; instead we receive a signal to display a notification and then we fetch the notification contents from our server.
This behavior is most likely triggered by the user having multiple notifications pings, but only one message to receive.
You may also check this related SO post: Chrome Push Notification: This site has been updated in the background
Generally as soon as you receive a push message from GCM (Google Cloud Messaging) you have to show a push notification in the browser. This is mentioned on the 3rd point in here:
https://developers.google.com/web/updates/2015/03/push-notificatons-on-the-open-web#what-are-the-limitations-of-push-messaging-in-chrome-42
So it might happen that somehow you are skipping the push notification though you got a push message from GCM and you are getting a push notification with some default message like "This site has been updated in the background".
Hope this helps!

What could cause ti.cloud to stop display Android Push Notifications (GCM) in status bar

I previously setup an Appcelerator Titanium project with push notifications (as per my Stack Overflow question How to configure Android Push Notifications (GCM) in Appcelerator Titanium Dashboard?) and for some months my Android app has been receiving the appropriate push notification from GCM, but I'm now receiving reports that this no longer works from end-users.
The flow usually goes like this...
Android app sends android push token to my Java server
Java server persists the Android push token
Java server sets up Amazon Web Service SNS endpoint for GCM and stores this endpoint for later use.
(some time passes)
Java server invokes Amazon Web Service SNS endpoint with a GCM payload
Amazon SNS passes message to Google GCM
GCM passes message to ti.cloud / ti.cloudpush
Phone displays push notification
The app does receive the push notification and I display an application dialog to show the contents of the message, but NO system-tray push notification is displayed, whereas I thought it was doing this in the past. No system sound is played either.
I can see that if the app is not running, then when the push notification is received the app is launched, but if the display isn't on (or locked) then the message will not be discovered for some time. I really need the native/system push notification to be in the tray.
Does anyone know why system / status notifications are not displayed? Should it be when using the ti.cloud / ti.cloudpush for Android?
Thanks
Rob.

WL push notification callback not being invoked in iOS when app is in background

We have push notifications working successfully. Backend event source is a Worklight adapter written in JS using the 'WL.Server.createDefaultNotification' and 'WL.Server.notifyAllDevices' API calls to send unicast notifications. In the front-end, the app is registered for push notification call back using 'WL.Client.Push.registerEventSourceCallback' JS API.
These particular scenarios are not working:
App is open in the background after login. Notification message is received, but user does not tap notification banner message - and instead just opens app by touching app icon. Notification callback method is not called - and subsequently payload from the backend is not available for the method.
App is open in the background after login. Notification message is received which only has iOS badge change and payload but no notification message for the banner or lock screen. In which case user has nothing to tap on. When user opens the app again - notification callback is not called.
Knowledgecenter documentation seems to indicate that the callback method should be getting invoked even if the app is running in the background. This is with Worklight 6.2.0.1.
Push is indeed supposed to work as you've describe. This is a bug.
This is no manual workaround for this.
If you are an IBM customer or Business Partner you will need to open a PMR (support ticket).

should iOS Instant Messaging App server send APNS(new message) on foreground

I'm creating an instant messaging application. imagine something like skype or yahoo messenger.
Now our server only sends push notification(for new messages) on when the app is on background/multitasked/minimized. But sometimes the server fails to detect that our app is on background, so sometimes it doesn't send push notification even if the app is on background.
Now I'm thinking that our server should just always send push notifications to device even if it is in foreground(so all messages will have a push notif), but we won't show it(the apns) when in foreground. This way, the server won't need to detect if the app is on background or not.
Do you think it's okay, or there will be a sideeffect of always sending apns, you see, if you are chatting whole day on foreground, the client will receive apns but won't show it?
No problem to send lots of notification without reading it, if the payload is different.
You are not forced to show notifications with an alert when a notification is received in foreground.