Android:Google FCM 规范 ids - 如何在非生产或测试中重现

Posted

技术标签:

【中文标题】Android:Google FCM 规范 ids - 如何在非生产或测试中重现【英文标题】:Android: Google FCM canonical ids -how to reproduce in non production or tests 【发布时间】:2017-07-10 17:26:46 【问题描述】:

我正在尝试编写测试用例来验证规范 ID 是否在没有模拟的情况下成功替换了原始令牌。

我无法从 android 设备上重现此内容。我尝试使用旧的注册 ID 发送我的推送通知,但我只从 FCM 获得 NotRegistered。

关于如何重现的任何建议?

【问题讨论】:

这能回答你的问题吗? ***.com/questions/27072824/… 一旦你回调了他们的网络服务,你就会得到 Canonical ID,因此我不知道你怎么能在没有模拟的情况下在测试环境中做到这一点 感谢您的评论。我想我以前读过 SO 问题。 SO 答案或谷歌没有告诉 FCM/GCM 何时认为 id 不同步导致规范 id 生成。我正在寻找任何 hack 类型的解决方案,以便在将代码投入生产之前进行测试。 【参考方案1】:

AFAIK,您不再需要使用规范 ID(尽管让您的服务器/客户端能够处理它们会很好)。自从 FCM 出现以来,我就再也没有看到过使用规范 ID。

我的回答here的一部分:

在 FCM 中,由于 Instance ID service 的工作方式,似乎不再使用规范 ID(或至少极少使用)。简而言之,该服务的工作原理是每个应用实例只有一个有效令牌。

如果旧令牌过期(无论出于何种原因),FCM 会触发一个 tokenRefresh 事件,您将在该事件中获得一个新的注册令牌,并且您还必须相应地处理它(在 onTokenRefresh() 中)。

【讨论】:

谢谢。我从谷歌支持收到了同样的答案

以上是关于Android:Google FCM 规范 ids - 如何在非生产或测试中重现的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Android 应用程序以使用 FCM?

通过电子邮件安装的适用于 Android 的 Google FCM

推送通知在带有 release-apk 的 Android 7.0 (FCM) 上不起作用

如何在 google Firebase 中获取 default_notification_channel_id 的“fcm_default_channel”值

安装 fcm 插件时出现cordova错误

FCM 插件和 Google Plus 冲突