每次刷新使用Firebase Cloud Messaging + React和firebase.messaging()。getToken()都是不同的

时间:2018-12-04 18:23:50

标签: javascript reactjs firebase firebase-cloud-messaging gatsby

我正在Gatsby上构建React Web应用程序,并且试图使用FCM合并推送通知。我已经安装了firebase-messaging-sw.js服务工作者,我正在尝试通过此方法在我的应用中获取令牌:

messaging
  .requestPermission()
  .then(() => {
    console.log('Permission received.');                
    return messaging.getToken();
  })
  .then(token => {
    console.log(token);                
    // Save token with user.
    return this.saveFcmToken(token, authUser);
  })
  .catch(error => {
    console.log('Error occurred.', error);
  });
我在firebase.auth.onAuthStateChanged()中调用此代码段以获取用户。

问题是我每次都获得一个不同的令牌。扩展搜索后,我还没有看到这种类型的问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

事实证明这是由于https://github.com/gatsbyjs/gatsby/issues/9770

在开发模式下,盖茨比显然取消了服务人员的注册。使用生产版本解决了这个问题。