(de Visão geral do GCM )
Dois dispositivos diferentes sempre teriam um ID de registro diferente. Mesmo aplicativos diferentes no mesmo dispositivo têm IDs de registro diferentes.
Funcionalmente, é seguro manter uma restrição UNIQUE_KEY no ID de registro, mas como o ID de registro pode ser longo (até 4096 bytes, embora na prática seja geralmente muito menor), alguns bancos de dados podem impedir que você defina um índice ou restrição em tal uma grande coluna. Você pode querer usar uma função de hash unidirecional que mapeie a ID de registro para um valor menor, armazene esse valor em uma coluna menor e tenha a restrição/índice nessa coluna.
Quando você recebe
NotRegistered
erro, você deve realmente excluir esse ID de registro do seu banco de dados (ou pelo menos marcá-lo com um status que diga que está inativo e parar de enviar mensagens para ele). Mas se o aplicativo for reinstalado em um dispositivo do qual foi desinstalado anteriormente, o aplicativo pode obter o mesmo ID de registro quando se registrar novamente no GCM, portanto, seu servidor deve permitir IDs de registro que em um ponto deram NotRegistered
para se tornar ativo novamente. Você deve atualizar o ID de registro antigo quando obtiver o ID de registro canônico na resposta do Google.