我们正计划通过FCM迁移到使用主题进行应用。
我做了一些测试,发现了一个奇怪的行为(看起来非常像个错误)。
当收到相同InstanceID的新令牌时,https://iid.googleapis.com/iid/info/端点仍显示该实例ID的先前活动主题订阅。
但是发送给该主题的通知不会到达设备上。
这些是我采取的步骤:
FirebaseInstanceId.getInstance().getToken(projectId, scope)
=> ABC:123
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"
}
FirebaseInstanceId.getInstance().deleteToken(projectId, scope)
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." }
此行为无法恢复。 (我们等了一整天)。
为什么信息端点显示新令牌已订阅该主题,但实际上根本没有注册?
唯一的解决方法似乎是重新订阅有关该主题的新令牌。
谢谢。