在阅读了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合并使用了它的功能而不是改进的想法,但它仍然回应着我。
答案 0 :(得分:9)
在与Google团队直接对话后,我得到了以下答案:
该团队确认并澄清了他们的数据表明该设备 这不是一个普通的设备,这是:
虚拟设备(模拟器)被重复使用次数
以自动方式测试太多应用程序的真实设备
- 醇>
使用系统分区的CLONE图像自定义的真实设备,来自不同设备的CLONED
如果这是真正的设备,解决它的最佳方法是恢复出厂设置 到设备的真实系统映像。因为这个设备是可能的 目前停留在2或3,你介意工厂重置设备 如果问题仍然存在,请告诉我们?
我已在设备上执行了恢复出厂设置,问题就消失了。我仍然不知道这是如何出现的,以及为什么。
答案 1 :(得分:0)
我怀疑这些测试来自 Google 机器人,我刚刚发布了我的应用程序,并且在 firebase 身份验证中出现了三个登录名,电子邮件似乎是假的,例如 johnniefernandez.39356@gmail.com。 我怀疑是机器人的所有电子邮件都以句点和数字结尾,例如“.39356” 我来自巴西,我通过 Analytics 看到用户来自美国,只有 3 个,所以我知道他们是测试,因为我还没有为美国发布我的应用。