主题订阅在新令牌上无效

时间:2019-02-18 11:21:07

标签: android firebase firebase-cloud-messaging

我们正计划通过FCM迁移到使用主题进行应用。
我做了一些测试,发现了一个奇怪的行为(看起来非常像个错误)。
当收到相同InstanceID的新令牌时,https://iid.googleapis.com/iid/info/端点仍显示该实例ID的先前活动主题订阅。
但是发送给该主题的通知不会到达设备上。

这些是我采取的步骤:

  • 在Android SDK中获取令牌

FirebaseInstanceId.getInstance().getToken(projectId, scope) => ABC:123

  • 订阅Android SDK中的主题

FirebaseMessaging.getInstance().subscribeToTopic(topicName)

    {
      "applicationVersion": "1",
      "connectDate": "2019-02-18",
      "attestStatus": "UNKNOWN",
      "application": "com.foo.bar",
      "scope": "*",
      "authorizedEntity": "12345",
      "rel": {
        "topics": {
          "topicName": {
            "addDate": "2019-02-18"
          }
        }
      },
      "connectionType": "WIFI",
      "appSigner": "XXXXXXX",
      "platform": "ANDROID"
    }
  • 向主题发送通知=>通知到达
  • 在Android SDK中删除令牌

FirebaseInstanceId.getInstance().deleteToken(projectId, scope)

  • 在Android SDK中获取新令牌

FirebaseInstanceId.getInstance().getToken(projectId, scope) => ABC:456

    {
      "applicationVersion": "1",
      "connectDate": "2019-02-18",
      "attestStatus": "UNKNOWN",
      "application": "com.foo.bar",
      "scope": "*",
      "authorizedEntity": "12345",
      "rel": {
        "topics": {
          "topicName": {
            "addDate": "2019-02-18"
          }
        }
      },
      "connectionType": "WIFI",
      "appSigner": "XXXXXXX",
      "platform": "ANDROID"
    }
{ "error": "No information found about this instance id." }
  • 向主题发送通知=> 通知未到达!

此行为无法恢复。 (我们等了一整天)。
为什么信息端点显示新令牌已订阅该主题,但实际上根本没有注册? 唯一的解决方法似乎是重新订阅有关该主题的新令牌。

谢谢。

0 个答案:

没有答案