gpt4 book ai didi

javascript - 无法从 firebase 获取 token 用于消息传递

转载 作者:行者123 更新时间:2023-12-03 00:42:34 24 4
gpt4 key购买 nike

我正在 firebase 上开发网络推送通知。当我尝试访问 messaging.getToken() 时,我没有获取 token ,而是收到错误消息 undefined 。我正在使用以下代码

private messaging = firebase.messaging(); //declaration
this.messaging.requestPermission().then(function () {
console.log('Notification permission granted.');
this.messaging.getToken().then(function (currentToken) {
console.log(currentToken, 'currentToken');
if (currentToken) {

} else {
// Show permission request.
console.log('No Instance ID token available. Request permission to generate one.');
// Show permission UI.

}
}).catch(function (err) {
console.log('An error occurred while retrieving token. ', err);

});
}).catch(function (err) {
console.log('Unable to get permission to notify. , err);
});

问题是,第一个日志授予通知权限。正在打印,并立即执行catch block 无法获得通知权限。我尝试添加firebase-messaging-sw.js 到我的根目录并在 index.html 中给出链接,而且我正在通过 https 进行测试,但我仍然面临与下面相同的问题:

Notification permission granted.
home.component.ts:113 Unable to get permission to notify.
TypeError: Cannot read property 'messaging' of undefined
at home.component.ts:95
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388)
at Object.onInvoke (core.js:3760)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138)
at zone.js:872
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:3751)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)

任何建议都会有帮助,谢谢

最佳答案

尝试将函数更改为箭头函数。

replace this:
this.messaging.requestPermission().then(function(){

with this:

this.messaging.requestPermission().then(() => {

console.log('Notification permission granted.');
this.messaging.getToken().then((currentToken) => {
...

您正在使用函数作为回调,而“this”正在使用不同的上下文。使用箭头函数,即使在回调内部也将维护主要上下文。

关于javascript - 无法从 firebase 获取 token 用于消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388162/

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