Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Können zwei verschiedene Geräte dieselbe GCM-Registrierungs-ID haben?

(aus GCM-Übersicht ). )

Zwei verschiedene Geräte hätten immer eine unterschiedliche Registrierungs-ID. Sogar verschiedene Apps auf demselben Gerät haben unterschiedliche Registrierungs-IDs.

Funktional ist es sicher, eine UNIQUE_KEY-Einschränkung für die Registrierungs-ID beizubehalten, aber da die Registrierungs-ID lang sein kann (bis zu 4096 Byte, obwohl sie in der Praxis normalerweise viel kürzer ist), können einige Datenbanken Sie daran hindern, einen Index oder eine Einschränkung dafür zu definieren eine große Säule. Möglicherweise möchten Sie eine Einweg-Hash-Funktion verwenden, die die Registrierungs-ID einem kleineren Wert zuordnet, diesen Wert in einer kleineren Spalte speichert und die Einschränkung/den Index für diese Spalte hat.

Wenn Sie NotRegistered erhalten Fehler, sollten Sie diese Registrierungs-ID tatsächlich aus Ihrer DB löschen (oder sie zumindest mit einem Status markieren, der besagt, dass sie inaktiv ist, und keine Nachrichten mehr an sie senden). Wenn die App jedoch auf einem Gerät neu installiert wird, von dem sie zuvor deinstalliert wurde, erhält die App möglicherweise dieselbe Registrierungs-ID, wenn sie sich erneut bei GCM registriert. Daher sollte Ihr Server Registrierungs-IDs zulassen, die zu einem bestimmten Zeitpunkt NotRegistered wieder aktiv zu werden.

Sie sollten die alte Registrierungs-ID aktualisieren, wenn Sie die kanonische Registrierungs-ID in der Antwort von Google erhalten.