我在一个Android应用中集成了Firebase Cloud 消息传递 . 应用程序收集FCM令牌并将其发送到存储令牌的远程服务器,以便(最终)使用FCM endpoints 向用户发送推送通知
https://fcm.googleapis.com/fcm/send
应用程序以这种方式获取令牌:
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
我注意到令牌有两种不同的格式 .
第一种格式是以xxxxxxxxxxx:APA91b开头的152个字符的字符串
第二个是从APA91b开始的140个字符的字符串
据我所知,Firebase Topic Message Received Status using Google API第一种格式是“新”,第二种格式是“旧” . 但到目前为止,我找不到令牌格式和应用版本(以及Firebase SDK版本)或Android API级别之间的任何关联 .
问题是我无法使用旧格式推送令牌向客户端发送通知 .
如果我尝试使用实例ID endpoints https://iid.googleapis.com/iid/info获取令牌详细信息,则会收到“InvalidTokenVersion”错误 .
我想知道的是:
-
为什么具有相同应用版本的客户端会生成不同的令牌格式?
-
有没有办法使用旧格式令牌或将它们转换为新格式?
谢谢