Mysql
 sql >> Base de données >  >> RDS >> Mysql

Deux appareils différents peuvent-ils avoir le même ID d'enregistrement GCM ?

(depuis Présentation de GCM )

Deux appareils différents auraient toujours un identifiant d'enregistrement différent. Même différentes applications sur le même appareil ont des identifiants d'enregistrement différents.

Fonctionnellement, il est prudent de conserver une contrainte UNIQUE_KEY sur l'ID d'enregistrement, mais comme l'ID d'enregistrement peut être long (jusqu'à 4096 octets, bien qu'en pratique, il soit généralement beaucoup plus court), certaines bases de données peuvent vous empêcher de définir un index ou une contrainte sur un tel une grande colonne. Vous voudrez peut-être utiliser une fonction de hachage à sens unique qui mapperait l'ID d'enregistrement sur une valeur plus petite, stockerait cette valeur dans une colonne plus petite et aurait la contrainte/l'index sur cette colonne.

Lorsque vous obtenez NotRegistered erreur, vous devez en effet supprimer cet ID d'enregistrement de votre base de données (ou au moins le marquer avec un statut indiquant qu'il est inactif et cesser de lui envoyer des messages). Mais si l'application doit être réinstallée sur un appareil à partir duquel elle a été précédemment désinstallée, l'application peut obtenir le même ID d'enregistrement lorsqu'elle s'enregistre à nouveau auprès de GCM. Votre serveur doit donc autoriser les ID d'enregistrement qui, à un moment donné, ont donné NotRegistered pour redevenir actif.

Vous devez mettre à jour l'ancien ID d'enregistrement lorsque vous obtenez l'ID d'enregistrement canonique dans la réponse de Google.