Я использую новый метод admin.messaging().sendToDevice()
для отправки уведомлений Web Push. Я отправляю оба notification
и data
, поэтому я могу показать пользователям контекст в сообщении.Firebase messaging `setBackgroundMessageHandler` переопределяет тело уведомления #AskFirebase
На стороне клиента я использую firebase.messaging().setBackgroundMessageHandler()
для обработки получаемых сообщений.
Проблема в том, что setBackgroundMessageHandler()
никогда не вызывается. Я попробовал решение от a similar question, но если я изменить структуру полезной нагрузки на сервер, чтобы добавить notification
в data
поле генерируется ошибка говорят, что я должен использовать только строки в качестве значений в data
(в notification
является объектом см. admin.messaging.NotificationMessagePayload).
Если я не использую firebase.messaging
на сервере и просто перестраивать как другой ответ предложил, я не буду в состоянии наслаждаться прекрасной особенностью clickAction
которая спасает меня обработками notificationclick
себя.
Я также добавил слушателя к push
события на работника службы, и я получаю полную полезную нагрузку (как notification
и data
доступны), он просто не вызывает обратный вызов
Является ли это ошибка с firebase.messaging.setBackgroundMessageHandler()
? Или я не использую его, как я должен?
Не вставляйте ключ '' уведомление ''в ключ' 'данных' '. Они оба должны быть клавишами верхнего уровня, и оба они являются необязательными. Итак, попробуйте что-то вроде 'sendToDevice (registrationToken, {notification: {title: 'Title'}})'. – jwngr