3

Nach dem Lesen von 100 von Threads und Googeln bin ich immer noch verwirrt über diese folgende Fehlermeldung.Firebase Token Fehler TOO_MANY_REGISTRATIONS

Momentan verwende ich Firebase Cloud Messaging und in sehr kurzen Begriffen versuche ich, meinen Token von Firebase zu bekommen, um Nachrichten an meinen Server senden zu können. Ich habe versucht, mit diesen beiden Methoden:

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

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

So in den Protokollen, ich diese Zeilen lesen:

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

Nach anderen Beiträgen und Antworten, es ist eine Ursache für „Zu viele installierten Anwendungen auf das Gerät, das bei C2DM/GCM/FCM registriert ist ". Ich habe auch gelesen, dass es eine Beschränkung von "Max 100 GCM/FCM registrierte Anwendungen, die auf dem Gerät installiert sind" gab.

Aber das ist nicht einfach wahr, oder? Ich meine, es mag wahr sein, aber es ist nicht die ganze Antwort auf dieses Problem. Ich arbeite ständig und teste mit verschiedenen Geräten und mein aktuelles Gerät hat KEINE 100 Anwendungen, die bei FCM registriert sind. Tatsächlich sind auf meinem Gerät gar nicht 100 Anwendungen installiert, weit entfernt davon!

Gibt es eine Möglichkeit, zuvor registrierte Geräte und Tokens zu verwalten? Ich habe versucht, den folgenden Code ohne Erfolg führen:

FirebaseInstanceId.getInstance().deleteInstanceId(); 

Ich habe versucht, Informationen aus verschiedenen Quellen zu (einschließlich der Dokumentation) ohne Glück zu verstehen, wie dies tatsächlich funktioniert. Ich hatte das gleiche Problem mit dem C2DM vor einiger Zeit und auch mit GCM in letzter Zeit. Vor ein paar Tagen habe ich mich mit Firebase zusammengetan, um seine Funktionen zu nutzen, was die Gedanken an Verbesserungen betrifft, aber es hallt immer noch zurück.

+1

Haben Sie versucht, auf verschiedenen Geräten oder einem Emulator zu laufen, um zu sehen, ob alle denselben Fehler erzeugen? –

+0

Ich habe auf verschiedenen Geräten ja versucht.Ich hatte das Problem im Grunde 2 von 4 Geräten, die ich getestet habe. Derzeit teste ich ein Nexus 6P und es funktioniert im Moment gut, kein Fehler beim Empfang des Tokens. Bei zum Beispiel Huawei P10 besteht der Fehler. Habe nicht mit einem Emulator versucht. Es lohnt sich hinzuzufügen, dass es vorher mit meinem Huawei P10 funktionierte. – Fatmajk

+0

Als ich Ihren Fehler gelesen habe, kamen mir zwei Probleme in den Sinn. 1) Die 'senderId' ist mit mehr als 1 Token verknüpft. 2) (was unmöglich ist, denke ich) ist, dass das gleiche Token mit mehreren 'senderIds' verknüpft ist. Könnten Sie bitte sicherstellen, dass keine der obigen Aussagen zutrifft? Und wenn Sie den Code für die Registrierung des Clients bei Firebase posten könnten? – riadrifai

Antwort

0

Nach direkt mit dem Google-Team gesprochen bekam ich folgende Antwort von ihnen:

Das Team bestätigt und präzisierte ihre Daten zeigten, dass das Gerät nicht wirklich ein normales Gerät ist, und das ist entweder:

  1. ein virtuelles Gerät (Emulator), die zu oft wiederverwendet

  2. ein echtes Gerät in automatisierter Weise verwendet zu viele ap zu testen ps

  3. ein echtes Gerät, das mit einem CLONE Image der Systempartition angepasst wurde, CLONED von einem anderen Gerät

Wenn dies ein reales Gerät ist, ist die beste Art und Weise zu lösen, es zu Fabrik Setzen Sie auf das reale Systemabbild des Geräts zurück. Da dieses Gerät derzeit in 2 oder 3 steckt, würde es Ihnen etwas ausmachen, das Gerät zurückzusetzen und lassen Sie uns wissen, ob das Problem noch reproduzieren?

Ich habe einen Werksreset auf meinem Gerät durchgeführt und das Problem ist weg. Ich sehe immer noch nicht genau, wie das aussehen kann und warum.