FCM刷新令牌始终输出NotRegistered

问题描述 投票:0回答:1

在我当前的项目中,我从手机中卸载应用程序,然后每当我尝试向此手机发送

推送通知
时,我就会开始收到NotRegistered令牌

因此,我从服务器中删除了令牌,然后在用户注销时调用

FirebaseMessaging.instance.deleteToken();
,知道 Token 与设备关联,而不是用户的帐户。

所以现在当用户登录时,我调用此

FirebaseMessaging.instance.getToken();
来获取新令牌,并像这样更新用户帐户

FirebaseMessaging.instance.setAutoInitEnabled(true);
    FirebaseMessaging.instance.getToken().then((value) async {
      print('TOKEN _$value');
      print('FireaseTOKEN :$value');

      String userId = await LocalStorageService.getString(LocalStorageService.userId) ?? "";

      final myUser = await ref.read(userRepositoryProvider).getUser(userId);

      if (myUser != null && myUser.firebaseToken != value) {
        myUser.firebaseToken = value;

        await ref.read(userRepositoryProvider).updateUser(myUser);
      }
    });

新的令牌已生成,但现在的问题是当我向这个新的Token发送消息时,我总是得到

NotRegistered

请问我的方法正确吗还是我遗漏了什么?

android ios flutter firebase firebase-cloud-messaging
1个回答
0
投票

我能够弄清楚如何解决这个问题, 我上面的代码很好而且干净,要刷新令牌,我需要做的是从设备注销,从手机中卸载应用程序,然后再次安装,

我已经在 Android 和 iPhone(12 pro max)上进行了测试,效果非常好

© www.soinside.com 2019 - 2024. All rights reserved.