'Firebase Service Worker

I have added actions to my firebase notifications, View and Opt-Out. I want users to be directed to the url which comes with the notification. The code below is supposed to work but it doesn't can someone please tell me what I am doing wrong.

const messaging = firebase.messaging();
    
messaging.onBackgroundMessage((payload) => {
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    // Customize notification here
    var notificationTopic = topic;
    var notificationTitle = title;
    var notificationOptions = {
        body: body,
        icon: icon,
        image: image,
        badge: badge,
        click_action: url,
        actions: [
            {action: 'view', title: 'View'},
            {action: 'unsubscribe', title: 'Opt-Out'}
        ]
    }

    self.registration.showNotification(notificationTitle, notificationOptions);
    
});

self.addEventListener('notificationclick', function(event) {
        
    event.notification.close();
        
    event.waitUntil(clients.matchAll({
        type: "window"
    }).then(function(clientList) {
        for (var i = 0; i < clientList.length; i++) {
            var client = clientList[i];
            if (client.url == url && 'focus' in client)
                return client.focus();
            }
            if (clients.openWindow)
                return clients.openWindow(url);
        }));
});


Solution 1:[1]

I had the same problem, in the of the day, I surrendered and just opened URL in a new tab. To pass URL I used at "data" object

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 MAZ