我有一个Flutter应用程序,它使用Firebase消息传递来发送通知。这是基本代码,它没有什么特别的作用,除了在我的DB上保存令牌。
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);
});
我是否必须实现某种后台服务,以便在每次刷新令牌时将其保存在DB中?我记得在Android(JAVA)上使用onTokenRefresh()
来实现这一点,但在Flutter(DART)中却没有找到任何相关信息。
我在什么地方读到过令牌每3600秒刷新一次,不知道这是不是真的。
5条答案
按热度按时间8gsdolmq1#
否,FCM标记不会每3600秒刷新一次。它仅在以下情况下刷新:
1.当用户卸载/重新安装应用程序或清除应用程序数据时
1.使用
FirebaseMessaging().deleteInstanceID()
手动删除FCM示例您可以使用以下命令侦听令牌刷新流:
希望能有所帮助
cpjpxq1n2#
您可以使用
firebaseMessaging.onTokenRefresh
获取一个流,该流在每次接收到新令牌时接收一个事件。w7t8yxp53#
以下是订阅
firebaseMessaging.onTokenRefresh
流并在令牌发生更改时更新令牌的示例:4jb9z9bj4#
1.你可以试试这个..按照新的更新
((新令牌){ //保存新令牌});
dgiusagp5#
用户登录后,我的应用程序每隔3500秒自动再次登录她。
我使用的计时器如下:
我在'登录'按钮中设置了定时器按下后登录发生的方法:
(Don'不要被方法的名称'_timerPressed '所迷惑。我使用了一个按钮按下来测试该技术,并且在将它绑定到登录按钮后还没有来得及重命名该方法。)