在阅读了100个线程和谷歌搜索后,我仍然对下面的错误消息感到困惑。
目前,我正在使用Firebase Cloud Messaging,短期内我尝试从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
根据其他帖子和答案,这是“设备上安装的应用程序太多,注册了C2 DM/GCM/FCM”的原因。我还读到过“设备上安装的最多100个GCM/FCM注册应用程序”的限制。
但这并不是简单的事实,不是吗?我的意思是,这可能是真的,但它不是这个问题的全部答案。我不断地工作和测试不同的设备,我目前的设备没有100个应用程序注册FCM。事实上,我的设备甚至没有100个应用程序安装在所有,远远没有!
有没有办法管理以前注册的设备和令牌?我试着运行下面的代码,但没有成功:
FirebaseInstanceId.getInstance().deleteInstanceId();
我试着从不同的来源(包括文档)获取信息,但没有运气去理解它是如何工作的。不久前,我在旧的C2 DM和最近的GCM上遇到了同样的问题。几天前,我与Firebase合并,使用它的特性,而不是改进它的想法,但它仍然在我身上回响。
3条答案
按热度按时间vxqlmq5t1#
在与谷歌团队直接交谈后,我从他们那里得到了以下答案:
团队确认并澄清了其数据,表明该器械并非真正的正常器械,这是:
1.虚拟设备(仿真器)重复使用次数过多
1.以自动化方式测试过多应用程序的真实的设备
1.使用系统分区的克隆映像自定义的真实的设备,克隆自其他设备
如果这是真实的设备,解决此问题的最佳方法是恢复出厂设置,恢复为设备的真实系统映像。由于此设备当前可能卡在2或3中,您是否介意将设备恢复出厂设置,并让我们知道问题是否仍然出现?
我已将设备恢复出厂设置,问题已解决。但我仍不清楚问题是如何出现的以及原因何在。
tjvv9vkg2#
我怀疑这些测试来自谷歌机器人,我刚刚发布了我的应用程序,在firebase认证中,三个登录出现了看似虚假的电子邮件,如johnnniefernandez。39356@gmail.com。所有我怀疑是机器人的电子邮件都以句号和数字结尾,如“。39356”我来自巴西,我通过分析看到用户来自美国,只有3个,所以我知道这是测试,因为我还没有发布我在美国的应用程序。
9vw9lbht3#
我的应用程序正在内部测试中,我收到了向firebase crashlytics报告的这些错误,奇怪的是它发生在5个用户身上,这很奇怪,因为只有我可以访问这个应用程序。所以我认为这可能是谷歌的自动测试机器人。下面是日志
更有趣的是,当这些崩溃被报告时,我并没有测试应用程序。
此外,当我在真实的设备(低端和高端设备)上打开我的应用时,我没有遇到任何报告的崩溃。
设备信息为: