Android端Firebase Messaging令牌携带安装ID 不被Azure通知中心支持
Firebase拼接格式令牌适配Azure Notification Hub解决方案
有没有人从Firebase获取到如下格式的令牌?
刷新令牌示例:dS2caa8JTpi6S6BSsvjAsv:APA91bFK10hW36vZ6qKgFV5vSS2Hx91vZfSsrBvGTxF2K3q76Gx6QHve3wYOk6-8zAIzGvQiYfEgkkc--0ZUILPPY60PdVurIis7DVsuGB3C6XArzsMUAE3zZJY-KFb3h-cDWQxc0zLX
该令牌采用firebaseInstallationID+":"+RefreshToken的格式用于推送通知发送,但此格式不被Azure Notification Hub接受。
这个问题是FCM新旧版本令牌格式差异导致的兼容性问题,可通过以下方法解决:
- 优先调用Firebase客户端SDK内置的
getToken()方法获取令牌,该接口返回的是不带冒号的标准单段FCM注册令牌,原生适配Azure通知中心的格式校验规则 - 若你已拿到拼接格式的令牌,直接截取冒号之后的所有内容即可用于推送配置,冒号前的Firebase安装ID仅用于Firebase端标识设备实例,推送校验不会用到该字段
- 服务端场景下调用Firebase Instance ID API查询令牌时,直接取返回结果中的
token字段,不要自行拼接Installation ID和Refresh Token字段
注意:处理后的令牌如果仍校验失败,需确认Azure通知中心绑定的FCM凭证与令牌所属的Firebase项目完全一致,跨项目的令牌会被直接拒绝。
内容的提问来源于stack exchange,提问作者Pia Sharma
相关产品推荐
相关产品推荐

