clearFcmToken method
Clears the stored FCM token. Call this on sign out.
Clears both new and legacy keys to ensure clean state.
Implementation
Future<void> clearFcmToken() async {
_cachedFcmToken = null;
_hasFcmTokenInitialized = false;
await _tokenRefreshSubscription?.cancel();
_tokenRefreshSubscription = null;
final prefs = await SharedPreferences.getInstance();
await prefs.remove(_fcmTokenKey);
await prefs.remove(_legacyFcmTokenKey); // Clear legacy key too
logd('FCM token cleared');
}