我正在使用Web中的Firebase Message。 据Firebase称,messaging.getToken():
最初,一旦检索到它就进行网络呼叫。随后致电 getToken将从缓存中返回。
但是我们在下面的代码中看到,每次加载页面时,它都会从messages.getToken()函数(从网络或从
)获取令牌。缓存)及其每次发送到服务器的时间(通过sendTokenToServer())。
messaging.getToken().then(function(currentToken) {
if (currentToken) {
sendTokenToServer(currentToken);
updateUIForPushEnabled(currentToken);t
} else {
// Show permission request.
console.log('No Instance ID token available. Request permission to generate one.');
// Show permission UI.
updateUIForPushPermissionRequired();
setTokenSentToServer(false);
}
我也想使用该主题。每次都将Token订阅到主题上并不是最佳选择。 在这种情况下,我必须为每次订阅该页面的主题订阅令牌。
是否可以检测到已采取的令牌,是从网络调用中还是从缓存中取得的?
如果获取的令牌来自缓存,则我不会将令牌发送到服务器,也不会订阅该主题(因为它首先完成了。)
答案 0 :(得分:1)
如果您想知道令牌是新令牌还是新令牌,则必须将其值与以前将自己缓存在本地存储中的令牌进行比较。该API不会给您任何指示。
无论如何每次都将其发送到服务器并不是很糟糕。