在Flutter App上更新FCM令牌

Not*_*ros 6 refresh token firebase flutter firebase-cloud-messaging

我有一个Flutter应用程序,在第一次运行时创建一个FCM令牌,如下所示:

_firebaseMessaging.getToken().then((token) {
  //save my token here
});
Run Code Online (Sandbox Code Playgroud)

但是,我知道这个令牌可以在一段时间内刷新一次.为了获得这个新刷新的令牌,我必须调用onTokenRefresh方法:

Stream<String> fcmStream = _firebaseMessaging.onTokenRefresh;
fcmStream.listen((token) {
  saveToken(token);
});
Run Code Online (Sandbox Code Playgroud)

问题是我不知道这是否正确.该saveToken(token)应用程序运行时始终执行该行,但当应用程序不在前台/后台时,它会起作用吗?

我的意思是,onTokenRefresh即使用户关闭应用程序,这仍将继续收听?

如果没有,如果应用程序长时间没有启动,我如何获得新令牌?

Mil*_*adi 18

基于此 firebase 文档fcm 令牌将在以下事件中更改:

  • 应用程序删除实例 ID
  • 该应用程序已在新设备上恢复
  • 用户卸载/重新安装应用程序
  • 用户清除应用数据

如果应用程序长时间未启动,且上述事件均未发生,则应用程序令牌不会发生变化。

  • 谢谢您的回答。如果文档是这样说的,那么我就不用担心了。 (3认同)