initializeFCM static method
Initialize FCM and get token with proper APNS handling
Implementation
static Future<void> initializeFCM() async {
try {
// Request notification permissions first
NotificationSettings settings = await _firebaseMessaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
if (settings.authorizationStatus == AuthorizationStatus.authorized) {
if (kDebugMode) {
print('User granted permission');
}
// Get and update FCM token
await _getFCMTokenSafely();
// Listen for token refresh
_firebaseMessaging.onTokenRefresh.listen((token) {
updateFcmToken(token);
});
} else {
if (kDebugMode) {
print('User declined or has not accepted permission');
}
}
} catch (e) {
if (kDebugMode) {
print("Error initializing FCM: $e");
}
}
}