首页 > 解决方案 > 在 Flutter App 上更新 FCM Token

问题描述

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

_firebaseMessaging.getToken().then((token) {
  //save my token here
});

但是,我知道这个令牌可以偶尔刷新一次。为了获得这个新的刷新令牌,我必须调用onTokenRefresh方法:

Stream<String> fcmStream = _firebaseMessaging.onTokenRefresh;
fcmStream.listen((token) {
  saveToken(token);
});

问题是我不知道这是否正确。该行saveToken(token)始终在应用程序运行时执行,但在应用程序不在前台/后台时有效?

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

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

标签: firebasefirebase-cloud-messagingtokenrefreshflutter

解决方案


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

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

如果应用长时间未启动,且以上事件均未发生,则应用令牌不会更改。


推荐阅读