1

我正在使用新admin.messaging().sendToDevice()方法发送 Web 推送通知。我将两者都发送notificationdata因此我可以在消息中向用户显示一些上下文。

在客户端,我firebase.messaging().setBackgroundMessageHandler()用来处理接收消息。

问题是setBackgroundMessageHandler()永远不会被调用。我尝试了类似问题的解决方案,但是如果我更改服务器上的有效负载结构以notificationdata字段中添加,则会引发错误,说我应该只使用字符串作为值data(这notification是一个对象。请参阅admin.messaging.NotificationMessagePayload)。

如果我不在firebase.messaging服务器上使用并且只是按照其他答案的建议进行重组,我将无法享受clickAction节省我notificationclick自己处理的美妙功能。

push我还在服务工作者的事件中添加了侦听器,并且我收到了完整的有效负载(notification两者data都可用),它只是不调用回调

这是一个错误firebase.messaging.setBackgroundMessageHandler()吗?还是我没有按照我应该的方式使用它?

4

1 回答 1

1

我联系了 Firebase 支持,他们说这是预期的行为。

因此,如果一个人想在发生某事时做某事,push他应该只发送该data字段。如果notification发送了一个字段,它将优先并且不会调用回调,但用户会收到通知。

于 2017-02-08T11:46:31.760 回答