FCM 中的令牌更新

Posted

技术标签:

【中文标题】FCM 中的令牌更新【英文标题】:Token update in FCM 【发布时间】:2018-07-20 12:25:11 【问题描述】:

我在我的项目中使用 FCM,我的应用程序注册了两个 FCM 项目(两个发件人 ID)。

现在我想处理令牌刷新。根据文档,我将得到以下回调

@Override
public void onNewToken(String token) 
   Log.d(TAG, "Refreshed token: " + token);

但是我可以知道更新了哪个令牌吗? 为 sender_id_1 更新了令牌还是为 sender_id_2 更新了令牌?

问题 2:如果我收到带有 newToken 值的 onNewToken 回调,并且如果我没有将该值传递给服务器并且服务器尝试发送旧令牌推送,那么会发生什么?我会从 FCM 收到什么错误?

谢谢

【问题讨论】:

如何注册两个 FCM 发件人 ID? @peshkira 见我的answer here @peshkira 你说的答案是关于如何注册多个发送。但我的问题是如何处理多个发送者的令牌刷新。 【参考方案1】:
    查看onNewToken() 的文档(重点是我的):

在生成默认 Firebase 项目的新令牌时调用。

这是在首次生成令牌时在应用安装后调用的,如果令牌更改则再次调用。

默认项目指向第一个项目。

    发送到过期令牌会导致NotRegistered 错误

【讨论】:

谢谢你的回答,我也一样。我不会为两个发件人获得令牌更新,我只会获得默认项目。这是 FCM 设计与 firebase 的巨大差距。 ?

以上是关于FCM 中的令牌更新的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 中的 FCM 令牌是啥?

Android APP 从 GCM 迁移到 FCM。旧 GCM 令牌不起作用

Firebase (FCM) 注册令牌

FCM 令牌是不是在操作系统更新时刷新?

将GCM令牌用于FCM中的推送消息

验证存储的Firebase FCM令牌