I am trying to send a push notification with PHP + Firebase. I get the notification fine but the 'click-action' event doesn't work. When I click on the notification, it disappears and does not redirect me to the PWA.
Could you help me?
File sendNotification.php
$severKey="MY_KEY";
$url="https://fcm.googleapis.com/fcm/send";
$message = "Test message";
$tokenId="MY_TOKEN";
$icon="MY_ICON";
$favicon = "FAVICON";
$field=array(
'data'=>array(
'notification'=>array(
'title'=>'Notify',
'body'=>$message,
'icon'=>$icon,
'badge' => $favicon,
'click_action' => 'https://www.google.es' //Here the url of my app
)
),
'to'=>$tokenId
);
$fields=json_encode($field);
$header=array(
'Authorization: key='.$severKey,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result=curl_exec($ch);
echo $result;
curl_close($ch);
Part of my file firebase-messaging-sw.js
importScripts('https://www.gstatic.com/firebasejs/8.4.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/8.4.1/firebase-messaging.js');
firebase.initializeApp(firebaseConfig);
const messaging = firebase.messaging();
messaging.onBackgroundMessage(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
const {title, ...options}=JSON.parse(payload.data.notification);
self.registration.showNotification(title, options);
});