我正在使用Web中的Firebase消息。
根据Firebase关于messages.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订阅到主题上并不是最佳选择。
在这种情况下,每次页面加载时,我都必须向主题订阅令牌。

有没有一种方法可以检测到令牌是从网络调用还是从缓存中获取的?

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

最佳答案

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

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

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

10-12 12:50
查看更多