在我当前的项目中,我从手机中卸载应用程序,然后每当我尝试向此手机发送
推送通知时,我就会开始收到
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 和 iPhone(12 pro max)上进行了测试,效果非常好