Firebase令牌在短短几个小时后失效

时间:2019-02-09 10:40:47

标签: ios swift firebase firebase-cloud-messaging

我通过didReceiveRegistrationToken委托函数接收到有效令牌,然后将该令牌发送到Firebase实时数据库中(如果已更改):

extension AppDelegate: MessagingDelegate
{
    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)
    {
        Database.database().reference().child("users").child(currentIdentifierForVendor).setValue(["token": token, "timestamp": NSDate().timeIntervalSince1970])
    }
}

本质上,我只是在中间进行了两次检查,以确保在未更改的情况下不会再次发送邮件。

这很好,我收到的令牌是

  

dTzNSffBPk4:APA91bFtxSA-32-NsSIgoY9U9Vt115dhKipVV4dXH8pfWXYgyAvKNzDvfeSZNA-meLBLImoTQd4XICiYrymotzFo9vsTZUZgX8WdYEtT88WWKYKTK8T

我通过firebase函数发送通知,该函数返回消息传递服务认为无效的令牌列表。

这可以在短时间内完美运行,但是在短短几个小时(<12)之后,消息反馈服务开始说此令牌无效。

我已经建立了一种强制将令牌上载到实时数据库并通过Messaging.messaging().fcmToken检索令牌,返回并再次上载相同令牌的方式。

如果我从令牌的开头删除了dTzNSffBPk4:,则消息传递服务不再认为它无效,但是仍然没有收到推送通知。

什么可能导致这种行为?

注意:

  1. 开启毛毛雨
  2. 我在didFinishLaunchingWithOptions中配置和设置Firebase委托
  3. 我在UNUserNotificationCenter中设置了applicationDidBecomeActive代表
  4. 我在applicationDidBecomeActive中请求通知权限
  5. 我正在Testflight构建上对此进行测试

0 个答案:

没有答案