Using firebase_messaging: ^13.0.2
I'm unsure how to force a refresh of the FCM token... without logging the user out. I noticed it refreshes when signing out + back in.
According to google docs there are only 3 ways to refresh the token:
- The app is restored on a new device
- The user uninstalls/reinstall the app
- The user clears app data.
https://firebase.google.com/docs/cloud-messaging/manage-tokens
What I run on startup as a listener:
FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance;
tokenStream = firebaseMessaging.onTokenRefresh.listen((event) {
if (currentUser != null) {
print('token $event');
currentUser!.fcmToken = event;
FireStoreUtils.updateCurrentUserfcmToken(currentUser!);
}
});
How to force a refresh of this token? This does not work and produces the same token value as before the delete was run...
FirebaseMessaging.instance.deleteToken().then((value) =>
FirebaseMessaging.instance.getToken().then((value) {
currentUser!.fcmToken = value;
FireStoreUtils.updateCurrentUserfcmToken(currentUser!);
}));
If you're wondering why I want to refresh, see my other post here: IOS notifications stop working until FCM token refresh