(GCMの概要 から )
2つの異なるデバイスは、常に異なる登録IDを持ちます。同じデバイス上の異なるアプリでさえ、異なる登録IDを持っています。
機能的には、登録IDにUNIQUE_KEY制約を保持するのは安全ですが、登録IDは長くなる可能性があるため(実際には通常ははるかに短いですが、最大4096バイト)、一部のデータベースでは、そのようなインデックスまたは制約を定義できない場合があります。大きな列。登録IDをより小さな値にマップし、その値をより小さな列に格納し、その列に制約/インデックスを設定する一方向ハッシュ関数を使用することをお勧めします。
NotRegistered
を取得したとき エラーの場合は、実際にその登録IDをDBから削除する必要があります(または、少なくとも非アクティブであることを示すステータスでマークし、メッセージの送信を停止する必要があります)。ただし、アプリが以前にアンインストールされたデバイスに再インストールされる場合、アプリはGCMに再度登録するときに同じ登録IDを取得する可能性があるため、サーバーは、ある時点でNotRegistered
再びアクティブになります。
Googleからの応答で正規の登録IDを取得したら、古い登録IDを更新する必要があります。