Mysql
 sql >> Database >  >> RDS >> Mysql

Due dispositivi diversi possono avere lo stesso ID di registrazione GCM?

(da Panoramica GCM )

Due dispositivi diversi avrebbero sempre un ID di registrazione diverso. Anche app diverse sullo stesso dispositivo hanno ID di registrazione diversi.

Funzionalmente è sicuro mantenere un vincolo UNIQUE_KEY sull'ID di registrazione, ma poiché l'ID di registrazione può essere lungo (fino a 4096 byte, anche se in pratica è solitamente molto più breve), alcuni database potrebbero impedirti di definire un indice o un vincolo su tale una grande colonna. Potresti voler utilizzare una funzione hash unidirezionale che mappi l'ID di registrazione a un valore più piccolo, memorizzi quel valore in una colonna più piccola e abbia il vincolo/indice su quella colonna.

Quando ricevi NotRegistered errore, dovresti effettivamente eliminare quell'ID di registrazione dal tuo DB (o almeno contrassegnarlo con uno stato che dice che è inattivo e interrompere l'invio di messaggi ad esso). Ma se l'app verrà reinstallata su un dispositivo da cui era stata disinstallata in precedenza, l'app potrebbe ottenere lo stesso ID di registrazione quando si registra di nuovo su GCM, quindi il tuo server dovrebbe consentire ID di registrazione che a un certo punto hanno fornito NotRegistered per diventare di nuovo attivo.

Dovresti aggiornare il vecchio ID di registrazione quando ottieni l'ID di registrazione canonico nella risposta di Google.