我正在 Web 中使用 Firebase Message。 根据 Firebase 关于 messages.getToken() 的说法:
Initially it makes a network call once retrieved. subsequent calls to getToken will return from cache.
但是我们在下面的代码中看到,每次加载页面时,它都会从 messages.getToken() 函数中获取 token (来自网络或来自
缓存)以及每次发送到服务器(通过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 并不是最佳选择。 在这种情况下,每次加载页面时,我都必须订阅主题的 token 。
有没有办法检测所获取的 token ,是从网络调用还是从缓存中获取的?
如果获取的 token 来自缓存,我不会将 token 发送到服务器,也不会订阅该主题(因为它已经先完成了。)
最佳答案
如果您想知道 token 是否是新的,您必须将其值与您之前自己缓存在本地存储中的 token 进行比较。 API 不会给您任何指示。
无论如何,每次都将其发送到服务器并没有那么糟糕。
关于javascript - 有没有办法检测所获取的 Firebase token ,是从网络调用还是从缓存中获取的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195716/