javascript - 有没有办法检测所获取的 Firebase token ,是从网络调用还是从缓存中获取的?

标签 javascript firebase firebase-cloud-messaging

我正在 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);
          }

Link of Code in Github

我也想使用这个主题。每次都订阅主题的 token 并不是最佳选择。 在这种情况下,每次加载页面时,我都必须订阅主题的 token 。

有没有办法检测所获取的 token ,是从网络调用还是从缓存中获取的?

如果获取的 token 来自缓存,我不会将 token 发送到服务器,也不会订阅该主题(因为它已经先完成了。)

最佳答案

如果您想知道 token 是否是新的,您必须将其值与您之前自己缓存在本地存储中的 token 进行比较。 API 不会给您任何指示。

无论如何,每次都将其发送到服务器并没有那么糟糕。

关于javascript - 有没有办法检测所获取的 Firebase token ,是从网络调用还是从缓存中获取的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195716/

相关文章:

android - 在 Android 中使用 Redux 结构和 Firebase

android - 如何将Google Services插件导入库?

android - 如何生成 firebase 注册 token

javascript - jQuery - 在指定时间内循环并显示具有特定属性值的数组中的图像

javascript - 具有调整大小功能的 Javascript 函数的多个实例

javascript - 在 Cloud Functions for Firebase 中启用 CORS

android - 如何使用fcm在android中实现多个通知onclick?

node.js - 如何在云函数中传递动态引用?

javascript - 为什么 React 中的副作用不好

javascript - 获取插入符所在的单词?