Firebase Console: How to Specify Click_Action for Notifications

Firebase FCM notifications click_action payload

If your app is in background, Firebase will not trigger onMessageReceived(). Why.....? I have no idea. In this situation, I do not see any point in implementing FirebaseMessagingService.

According to docs, if you want to process background message arrival, you have to send 'click_action' with your message.
But it is not possible if you send message from Firebase console, only via Firebase API.
It means you will have to build your own "console" in order to enable marketing people to use it. So, this makes Firebase console also quite useless!

There is really good, promising, idea behind this new tool, but executed badly.

I suppose we will have to wait for new versions and improvements/fixes!

How to specify sound and click_action in firebase cloud function

Ok, I finally managed to gather bits and pieces here and there to make it work. Don't understand why the docs do not have a clear and direct path to such a common requirement.

exports.sendComNotification = functions.firestore  .document('Comunicados/{comID}')  .onCreate((snap, context) => {    const doc = snap.data();    const msg = doc.title;    var message = {      notification: {        title: 'Comunicado da Diretoria!',        body: msg      },      data: {        title: 'Comunicado',        body: msg      },      android: {        notification: {          sound: 'default',          click_action: 'FLUTTER_NOTIFICATION_CLICK',        },      },      apns: {        payload: {          aps: {            badge: 1,            sound: 'default'          },        },      },      topic: "Comunicados"    };

return admin.messaging().send(message) .then((response) => {
console.log('Successfully sent message:', response); return }) .catch((error) => { console.log('Error sending message:', error); return });
});

How to send Push Notification With Custom Click Action From Firebase Console

yes you can't send notification like this from the firebase console but this is how it works
you need to add intent_filter to the activity at the manifest.xml

<activity android:name=".MyActivity">
<intent-filter>
<action android:name="com.mypackage.MyActivty_TARGET" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

and put your click_action value as the activity action : com.mypackage.MyActivty_TARGET"

and you read the data from the android like this :

String click_action = remoteMessage.getNotification().getClickAction();
Intent in = new Intent(click_action);

Firebase Cloud Messaging click_action format is platform specific?

FCM works based on IDs generated by devices which are different depending on the device, platform, and curl session. So, they would be different for Android, iOS and Web. If you want to send to all platforms, you have to call the method three times (once for each platform) with a different payload or curl session for each. I'm sending to two platforms (iOS and Android) with two different function and calling them at the same time.



Related Topics



Leave a reply



Submit