Не получать Push-уведомления с использованием Firebase и Objective C
Я пытаюсь использоватьFirebase
для push-уведомлений. я успешно установилFirebase
А такжеFirebase messaging
с помощьюCocoapods
.
Я использовал приведенный ниже код
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshCallback:) name:kFIRInstanceIDTokenRefreshNotification object:nil];
UIUserNotificationType allNotificationsType = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationsType categories:nil];
[application registerUserNotificationSettings:settings];
[application isRegisteredForRemoteNotifications];
return YES;
}
-(void)applicationDidEnterBackground:(UIApplication *)application {
[[FIRMessaging messaging] disconnect];
NSLog(@"Disconnect from FCM");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self connectToFirebase];
}
- (void) application:(UIApplication *) application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:( void (^)(UIBackgroundFetchResult))completionHandler{
// Pring The Message Id
NSLog(@"Mesage Id : %@",userInfo[@"gcm.message_id"]);
// Print Full Message
NSLog(@"%@",userInfo);
}
#pragma mark -- Custom Firebase code
- (void)tokenRefreshCallback:(NSNotification *) notification{
NSString *refreshedToken = [[FIRInstanceID instanceID] token];
NSLog(@"IstanceID token: %@", refreshedToken);
// Connect To FCM since connection may have failed when attempt before having a token
[self connectToFirebase];
}
-(void) connectToFirebase{
[[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error)
{
if ( error != nil)
{
NSLog(@"Unable to Connect To FCM. %@",error);
}
else
{
NSLog((@"Connected To FCM"));
}
}];
}
Когда я запускаю приведенный выше код, используя мой iPhone, связанный сXcode
при отправке сообщения из консоли Firebase у меня возникают следующие проблемы
1). когда приложение находится на переднем плане (активно), журнал показывает следующее сообщение
Mesage Id : (null){
CustommData = "First Message";
"collapse_key" = "abcd.iospush.FireBasePush";
from = 555551391562;
notification = {
badge = 4;
body = "Test Message";
e = 1;
sound = default;
sound2 = default;
};
}
уведомлениеMessage Id
являетсяnull
.
2). Мой телефон не показывает никаких уведомлений вЦентр уведомлений находится ли приложение на переднем плане, в фоновом режиме или закрыто
Я хочу, чтобы пользователь получал push-уведомления, когда приложение находится в фоновом режиме, на переднем плане или закрыто