在使用firebase的推送通知中onTokenRefresh与getToken有什么不同?

问题描述 投票:2回答:1

我是新的firebase和反应原生所以我很抱歉这些问题,但我想知道

  1. 在使用firebase的推送通知中onTokenRefresh与getToken有什么不同?
  2. 为什么不只使用getToken?
  3. 为什么onTokenRefresh总是出现在这段代码中,我认为只有当令牌实际发生变化时才会运行此函数... componentDidMount() { kittensApp.onReady().then(app => { app.messaging().getToken() .then(fcmToken => { if (fcmToken) { console.log('fcmtokenApp', fcmToken) } else { console.log('here 2') } }) app.messaging().onTokenRefresh(token => { console.log('refreshtoken', token) }) })}
  4. 另一个问题是,如果我想获取令牌并将其发送到服务器以将其保存在数据库中以便将来推送通知我应该使用什么功能(获取令牌或刷新)?如何确保令牌更改(通过更新应用程序或重新安装)它会将新令牌发送到服务器?或者有任何方法可以保持令牌新,而不会让用户打开应用程序?

感谢您的帮助!

firebase react-native firebase-cloud-messaging
1个回答
0
投票
  1. 生成新令牌时,onTokenRefresh将使用上次注册的令牌触发,但getToken用于注册令牌消息传递(如果您已注册令牌,则将从您的else语句获取console.log
  2. 当生成新令牌时,您无法获得正确的最新令牌
  3. onTokenRefresh为您提供始终正确和最新的令牌
  4. 两者都在getToken上(如果你没有注册令牌并获得一个)和刷新(如果它已经更改),你必须在服务器上比较它,如果收到的令牌在数据库和应用程序上是相同的。好的选择是将用户数据保存到例如服务器的redux存储中,如果firebase刷新给你不同的令牌,请用这个新的请求,如果不做什么,因为它是正确的。

希望它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.