In base ai documenti, non è possibile ottenere da GCM il notification_key
di uno notification_key_name
esistente. Se ci pensate, è logico che provare a creare un nuovoper uno notification_key_name
esistente vi desse un errore, poiché se non fosse il caso, potreste essere accidentalmente sovrascrivendo gli ID di registrazione di uno esistente notification_key
se vi capita per fornire uno notification_key_name
esistente per errore.
Si sta confrontando questo con la registrazione di un dispositivo su GCM più volte, ottenendo ogni volta lo stesso ID di registrazione, ma non è una situazione simile. Quando registri un dispositivo su GCM, GCM ha un modo per identificare il dispositivo e sapere che è già registrato e restituire lo stesso ID di registrazione. Con le notifiche degli utenti, ha solo il notification_key_name
che hai fornito, e non c'è nulla che ti impedisce di utilizzare lo stesso notification_key_name
per più utenti. Cioè, c'è qualcosa che ti ferma - l'errore che hai ottenuto quando provi a creare un notification_key
con uno notification_key_name
utilizzato in precedenza.
Un modo semplice per superare il problema consiste nel trattare notification_key_name
come un identificatore univoco generato dal server. Se non si dispone di un notification_key
per un determinato utente (sia perché si tratta di un nuovo utente o perché non è stato archiviato lo notification_key
precedentemente acquistato da Google), si genera un nuovo notification_key_name
univoco e lo si utilizza per creare un nuovo notification_key
. Non devi preoccuparti del vecchio notification_key
che non sei riuscito a memorizzare.
Infine si memorizzano sia lo notification_key
e notification_key_name
in una tabella che contiene l'id utente.
Ha senso per ottenere un errore, ma non ha senso che poi non è possibile recuperare quello che già conoscono ... Se possono identificare un duplicato, potrebbero fornire un'interfaccia per restituirlo ...Come suggerisci di fare il 'notification_key_name' generato dal mio server, significa che il' notification_key_name' generato non sarà uno a uno con il nome utente dell'app, il che rende le cose inutilmente complicate se riesca a recuperare il 'notification_key' .. – xbakesx
@xbakesx Il tuo notification_key_name sarebbe ancora uno a uno con i nomi utente dell'app. Se si genera un notification_key_name per ottenere un notification_key da Google e non si riesce a persistare il tasto notification_key, non si persisterà neanche notfiication_key_name. Quindi si dovrebbe generare un nuovo notification_key_name (per un determinato nome utente) per ottenere un nuovo tasto notification_key, e questo sarebbe l'unico nome_key_key_name associato al nome utente nel proprio DB. – Eran