title: When will FCM messaging.getToken() return a falsy value?
body: <p>I'm confused by the FCM. The following code may be found in the <a href="https://firebase.google.com/docs/cloud-messaging/js/client#web-version-8_1" rel="nofollow noreferrer">official FCM docs</a>:</p>
  <pre class="lang-js prettyprint-override"><code>// Get registration token. Initially this makes a network call, once retrieved
  // subsequent calls to getToken will return from cache.
  messaging.getToken({ vapidKey: '&lt;YOUR_PUBLIC_VAPID_KEY_HERE&gt;' }).then((currentToken) =&gt; {
    if (currentToken) {
      // Send the token to your server and update the UI if necessary
      // ...
    } else {
      // Show permission request UI
      console.log('No registration token available. Request permission to generate one.');
      // ...
    }
  }).catch((err) =&gt; {
    console.log('An error occurred while retrieving token. ', err);
    // ...
  });
  </code></pre>
  <p>When will the 'Show permission request UI' section be executed?</p>
  <p>Because if I deny the permission request, the catch block will be reached; yet, if I grant the permission, 'currentToken'will always have value.</p>
  <p>When will 'currentToken' become a falsy value?</p>