iOS Firebase消息迁移 - 更新后的应用不会收到消息,但新安装的应用会

时间:2016-06-08 11:17:34

标签: ios firebase google-cloud-messaging apple-push-notifications firebase-cloud-messaging

我一直在尝试将我的iOS应用程序从Google Cloud Messaging迁移到Firebase,在完成所有艰苦的工作并使新安装的应用程序正常运行后,我遇到了问题:

如果我安装旧版本的应用程序(使用GCM进行推送通知),那么我将旧版本更新为新的基于Firebase的版本,我不会收到任何消息给设备。

邮件从发件人方面发送(我使用Postman进行测试),并且在新安装的应用程序上收到的邮件很好。我确保更新的应用程序正在获取Firebase实例令牌并将其发送到我的服务器数据库(并记录我的手动测试),并且由于消息发送的响应始终是成功的,因此我可以使用此消息。我非常确定我的API密钥或推送令牌没有问题。

可悲的是,关于我可以为我的问题提供的信息的范围,感觉就像是我的头撞墙。要求我的用户群从头开始卸载并重新安装应用程序还不够好,他们会丢失数据! (我已经为我的Android应用迁移到Firebase,他们工作正常。)

任何人都有这方面的经验吗?与此同时,我回到GCM,工作得很好......

编辑

由于Firebase在AppDelegate类中调整了方法,现在它变得更加稀疏,我不再在didRegisterForRemoteNotificationsWithDeviceToken:中执行任何操作。 (我确实只用一个NSLog函数调用定义它,它被调用,由于某种原因总是两次。)

didFinishLaunchingWithOptions:看起来有点像这样:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOption
{
    // Configure Firebase and listen out for token updates
    [FIRApp configure];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onTokenRefresh) name:kFIRInstanceIDTokenRefreshNotification object:nil];

    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];

    //...
}

我的onTokenRefresh:方法被称为正常 - 我正在获取新令牌,我可以将其与邮递员和服务器一起发送推送通知 - 我只是不知道&#39 ;当它碰巧从以前的化身中更新时,在应用程序上接收它们......

- (void) onTokenRefresh
{
    NSString *token = [[FIRInstanceID instanceID] token];
    NSLog(@"onTokenRefresh called - My Firebase token is: %@", token);

    //...
}

0 个答案:

没有答案