Как заставить функционировать `fcm_options.link` в веб-уведомлениях Firebase - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь, чтобы мои веб-уведомления FCM содержали кликабельную ссылку на мой сайт, используя SDK администратора Firebase (версия 7.0.0) для node.js.Насколько я могу судить, я следую за документацией к T, но я не могу заставить работать ссылку.Чтобы уточнить, мои уведомления работают нормально, в противном случае, это просто ссылка, которую я не получил работать.

Документация состояния:

Для уведомленияПри отправке сообщений с сервера приложений JavaScript API FCM поддерживает ключ fcm_options.link.Как правило, это настроено на страницу в вашем веб-приложении

Я включил webpush.fcm_options.link в свое уведомление.Я включил в свое сообщение явную полезную нагрузку notification, поскольку в документации говорится, что сообщения data не поддерживают fcm_options.link.

Вот структура моего сообщения на данный момент:

{
    notification: {
        title: 'Title',
        body: 'Body',
    },
    data: {
       // my data here
    },
    webpush: {
        notification: {
            requireInteraction: true,
            icon: '/icons/notification.png'
        },
        fcm_options: {
            link: 'https://example.com/'
        }
    },
    // android: {},
    // apns: {},
    topic: 'sometopic'
};

Вот функция, которую я использую для отправки сообщения:

const admin = require('firebase-admin')

const sendMessage = message => {
    admin
        .messaging()
        .send(message)
        .then(response => {
            console.log(response)
        })
        .catch(error => {
            console.log(error)
        });
};

Свойство link должноработать в соответствии с документацией: мой URL включает https, а мое уведомление отправляется с сервера приложений и содержит явную полезную нагрузку уведомления.На данный момент нажатие на уведомление просто делает его исчезающим, и больше ничего не происходит.

1 Ответ

2 голосов
/ 10 апреля 2019

ОБНОВЛЕНИЕ: я выяснил, в чем проблема - мой сервисный работник использовал функцию importScripts, но я использовал устаревшую версию сценария firebase, которая не поддерживала fcm_options.link. Я изменил его на мою текущую версию firebase (5.8.5), и она работает. Все отсортировано!

...