gpt4 book ai didi

firebase 设置后台消息处理程序

转载 作者:行者123 更新时间:2023-12-02 14:59:39 24 4
gpt4 key购买 nike

我一直在尝试在前端自定义通知消息,即如果未设置发送通知的字段,我正在尝试添加它。

importScripts('https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.0.4/firebase-messaging.js');

var config = {
apiKey: "x",
authDomain: "y",
databaseURL: "z",
projectId: "a",
storageBucket: "b",
messagingSenderId: "1"
};

firebase.initializeApp(config);

const messaging = firebase.messaging();
console.log('came here');

console.log(messaging.bgMessageHandler);

console.log(messaging.setBackgroundMessageHandler,'dsafdsadasfd')




messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
// Customize notification here
var notificationTitle = 'Background Message Title';
var notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};

console.log(notificationOptions)
return self.registration.showNotification(notificationTitle,
notificationOptions);
});

console.log(messaging.bgMessageHandler);

在执行上述代码时,我没有收到 [firebase-messaging-sw.js] Received background message ', payload 的控制台,即使我收到了通知。

为什么 setBackgroundMessageHandler 不起作用?

最佳答案

当应用程序在后台运行时,您发出的发送消息的 json 请求似乎有问题。

注意:如果您在 HTTP 或 XMPP 发送请求中设置通知字段,则这些值优先于服务工作线程中指定的任何值。

https://firebase.google.com/docs/cloud-messaging/js/topic-messaging

因此,以下格式不会调用后台处理程序:

{
to: "e-DLMv........._DiL",
notification: {
body: "Backgound-Message"
}
}

在数据中发送带有通知的消息(它会起作用):

{
to: "e-DLMv........._DiL",
data: {
notification: {
body: "Backgound-Message"
}
}
}

关于firebase 设置后台消息处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50755931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com