在Flutter App上更新FCM令牌

时间:2018-07-25 13:16:18

标签: firebase firebase-cloud-messaging token refresh flutter

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

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

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

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

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

我的意思是,即使用户关闭了该应用,这个onTokenRefresh仍会继续监听吗?

如果没有,如果该应用很长时间没有启动,如何获得新令牌?

1 个答案:

答案 0 :(得分:2)

基于async/await fcm令牌的事件将在以下事件中更改:

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

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