Firebase令牌错误TOO_MANY_REGISTRATIONS

时间:2017-11-28 11:03:55

标签: android firebase google-cloud-messaging firebase-cloud-messaging

在阅读了100个线程和谷歌搜索后,我仍然对以下错误消息感到困惑。

目前,我正在使用Firebase云消息传递,并且在很短的时间内,我试图从Firebase获取令牌,以便能够向我的服务器发送消息。 我尝试过这两种方法:

String token = FirebaseInstanceId.getInstance().getToken(mySenderId, "FCM");

String token = FirebaseInstanceId.getInstance().getToken();

所以在日志中,我读到了这个:

E/FirebaseInstanceId: Token retrieval failed: TOO_MANY_REGISTRATIONS
                                 java.io.IOException: TOO_MANY_REGISTRATIONS

根据其他帖子和答案,它是导致在C2DM / GCM / FCM"注册的设备上安装的应用程序过多的原因。我还读到,设备上安装了Max 100 GCM / FCM注册的应用程序的限制"。

但这不是真的,是吗?我的意思是,它可能是真的,但它并不是这个问题的全部答案。我一直在使用不同的设备进行测试,而我目前的设备没有在FCM注册100个应用程序。事实上,我的设备甚至根本没有安装100个应用程序,远离它!

有没有办法管理以前注册的设备和令牌?我试图运行以下代码而没有任何运气:

FirebaseInstanceId.getInstance().deleteInstanceId();

我试图确定来自不同来源(包括文档)的信息,但没有理解这实际上是如何工作的。我不久前和旧版的C2DM有同样的问题,最近也和GCM有过同样的问题。几天前我和Firebase合并使用了它的功能而不是改进的想法,但它仍然回应着我。

2 个答案:

答案 0 :(得分:9)

在与Google团队直接对话后,我得到了以下答案:

  

该团队确认并澄清了他们的数据表明该设备   这不是一个普通的设备,这是:

     
      
  1. 虚拟设备(模拟器)被重复使用次数

  2.   
  3. 以自动方式测试太多应用程序的真实设备

  4.   
  5. 使用系统分区的CLONE图像自定义的真实设备,来自不同设备的CLONED

  6.         

    如果这是真正的设备,解决它的最佳方法是恢复出厂设置   到设备的真实系统映像。因为这个设备是可能的   目前停留在2或3,你介意工厂重置设备   如果问题仍然存在,请告诉我们?

我已在设备上执行了恢复出厂设置,问题就消失了。我仍然不知道这是如何出现的,以及为什么。

答案 1 :(得分:0)

我怀疑这些测试来自 Google 机器人,我刚刚发布了我的应用程序,并且在 firebase 身份验证中出现了三个登录名,电子邮件似乎是假的,例如 johnniefernandez.39356@gmail.com。 我怀疑是机器人的所有电子邮件都以句点和数字结尾,例如“.39356” 我来自巴西,我通过 Analytics 看到用户来自美国,只有 3 个,所以我知道他们是测试,因为我还没有为美国发布我的应用。