当用户从angular4中的应用程序注销时,如何删除/取消订阅旧的firebase fcm令牌

时间:2018-03-26 14:01:21

标签: angular google-chrome firebase firebase-cloud-messaging

我们正在尝试在angular5应用程序中构建通知服务。 为此,我们使用谷歌firebase消息服务。当用户从应用程序注销时,我们遇到的问题是,令牌未刷新或应用程序未取消订阅,因此当新用户登录并订阅新令牌时。

请在 angular5 中帮助删除/取消订阅令牌。

订阅令牌的代码。

this.messaging.getToken().then(function(this, currentToken ) {
      if (currentToken) {
        console.log(' token alredy have for this app port domain in browser current stored token no need to create and send new token');
        console.log(currentToken);
        } else {
        // Show permission request.
        console.log('No Instance ID token available. Request permission to generate one.');
        // Show permission UI.
        new MessagingService(null, null, null, null, null, null).generateAndSendTokenToServer(fdb);
      }
    }).catch(function(err) {
      console.log('An error occurred while retrieving token. ', err);
    });
    }

1 个答案:

答案 0 :(得分:0)

在Angular 6上进行了测试

deleteToken() {
this.messaging.getToken()
.then(t => this.messaging.deleteToken(t) )
.then(r => console.log(r))
.catch(e => console.error(e));  
}

然后尝试生成另一个令牌。就我而言,.onTokenRefresh不会自动被调用,您必须显式调用this.messaging.getToken().then(token => console.log(token ${token}))来生成新令牌。

并确保用户已接受生成令牌的请求