首页 > 解决方案 > 如何在 Flutter 上刷新 firebase 令牌?

问题描述

我有一个使用 Firebase 消息传递通知的 Flutter 应用程序。这是基本代码,除了将令牌保存在我的数据库中之外,它没有什么特别的。

 FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();

 _firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) {

  },
  onResume: (Map<String, dynamic> message) {

  },
  onLaunch: (Map<String, dynamic> message) {

  },
);


_firebaseMessaging.getToken().then((token) {
  saveToken(token);
});

我是否必须实施某种后台服务才能在每次刷新时将新令牌保存在我的数据库中?我记得onTokenRefresh()在 Android(JAVA) 上使用过,但我在 Flutter (DART) 中一无所获。

我在某处读到令牌每 3600 秒刷新一次。我想知道这是不是真的。

标签: firebasetokenfluttermessaging

解决方案


不,FCM 令牌不会每 3600 秒刷新一次。它仅在以下情况下刷新:

  1. 当用户卸载/重新安装应用程序或清除应用程序数据时
  2. 您使用手动删除 FCM 实例FirebaseMessaging().deleteInstanceID()

您可以使用以下命令收听令牌刷新流:

FirebaseMessaging().onTokenRefresh.listen((newToken) {
   // Save newToken
});

希望能帮助到你


推荐阅读