【发布时间】:2017-06-27 10:33:19
【问题描述】:
我创建了一个 Firebase 通知 Web 应用程序。当我从 Web 应用程序登录时,我生成 FCM 令牌并将其发送到我的 API 服务器,这工作正常。我在我的代码中编写了 onTokenRefresh 方法,但我无法测试这段代码。 有什么方法可以测试这段代码吗?
firebase.initializeApp(config);
messaging = firebase.messaging();
// Get Instance ID token. Initially, this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.requestPermission().then(function() {
return messaging.getToken();
}).then(function(currentToken) {
if (currentToken) {
sendTokenToServer(currentToken);
updateUIForPushEnabled(currentToken);
} else {
// Show permission request.
console.log('No Instance ID token available. Request permission to generate one.');
// Show permission UI.
updateUIForPushPermissionRequired();
setTokenSentToServer(false);
}
})
.catch(function(err) {
console.log('An error occurred while retrieving token. ', err);
showToken('Error retrieving Instance ID token. ', err);
setTokenSentToServer(false);
});
}
// Callback fired if Instance ID token is updated.
messaging.onTokenRefresh(function() {
messaging.getToken()
.then(function(refreshedToken) {
console.log('Token refreshed.');
// Indicate that the new Instance ID token has not yet been sent to the
// app server.
setTokenSentToServer(false);
// Send Instance ID token to app server.
sendTokenToServer(refreshedToken);
// ...
})
.catch(function(err) {
console.log('Unable to retrieve refreshed token ', err);
showToken('Unable to retrieve refreshed token ', err);
});
});
【问题讨论】:
-
我在 1 小时后从我的 API 服务器发送消息,然后我收到以下错误 MulticastResult(multicast_id=76342......7621,total=7,success=4,failure=3,canonical_ids=2 ,结果:[[ messageId=0:148...........9fd7ecd canonicalRegistrationId=APA91b............Xa5c2v9],[errorCode=NotRegistered],[errorCode=NotRegistered ], [ messageId=0:14......cd ], [ messageId=0:14....cd ], [ messageId=0:14....cd canonicalRegistrationId=APA9...... .....pUNB2QGu ], [ errorCode=NotRegistered ]] 当我从我的开发控制台调用时,获取新的 firebase 通知令牌。
标签: javascript firebase firebase-cloud-messaging firebase-notifications