有没有办法检测到已获取Firebase令牌,是从网络调用还是从缓存中获取的?

时间:2018-07-05 16:02:34

标签: javascript firebase firebase-cloud-messaging

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

Link of Code in Github

我也想使用该主题。每次都将Token订阅到主题上并不是最佳选择。 在这种情况下,我必须为每次订阅该页面的主题订阅令牌。

是否可以检测到已采取的令牌,是从网络调用中还是从缓存中取得的?

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

1 个答案:

答案 0 :(得分:1)

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

无论如何每次都将其发送到服务器并不是很糟糕。