web-dev-qa-db-ja.com

アプリがユーザーのモバイルデバイスにインストールされている場合でも、FCMからのNotRegistered Response

GCMからFCMに移行しました。アンインストールを追跡するために、すべてのユーザーにサイレント通知を送信し、「NotRegistered」応答を受け取った場合、ユーザーをアンインストール済みとして扱います。過去数日以来、アプリをアンインストールしていない一部のユーザーに対して「NotRegistered」の取得を開始しました。

同じ登録トークンのFCM診断を照会すると、メッセージは配信されますが、継続的に受け入れられた状態になります。添付はスクリーンショットです。メッセージの送信中に受け取ったエラーコードは、まだ "NotRegistered"です。ユーザーはアプリをアンインストールしていません。添付のスクリーンショットです。

6月1日から6月4日までメッセージが受け入れられた状態であるため、「未登録」になります。この画像は、6月4日まで送信された通知のメッセージIDを示しています。

1

次の点について説明してください。

  1. FCM登録トークンのステータスがNotRegisteredに変更された理由。先月以降アップグレードはなく、ユーザーは長い間最新バージョンを使用していますか?

  2. FCMエラーコード「NotRegistered」のチェックは、アンインストールを追跡する完全な証拠方法ですか?利用可能なより良いメカニズムはありますか?

10
karan
  1. NotRegisteredが発生する理由に関する理由は、 docs 、3番目のケースに記載されており、あなたのケース(エンファシスマインズ)の理由として考えられます:

    既存の登録トークンは、次のような多くのシナリオで無効になる場合があります。

    • クライアントアプリがFCMから登録解除された場合。
    • クライアントアプリが自動的に登録解除される場合、ユーザーがアプリケーションをアンインストールすると発生する可能性があります。たとえば、iOSで、APNSフィードバックサービスがAPNSトークンを無効として報告した場合。
    • 登録トークンの有効期限が切れた場合(たとえば、Googleが登録トークンを更新することを決定したり、iOSデバイスのAPNSトークンの有効期限が切れたりした場合)。
    • クライアントアプリは更新されたが、新しいバージョンがメッセージを受信するように構成されていない場合。

    これらすべての場合において、この登録トークンをアプリサーバーから削除し、メッセージの送信に使用するのを停止します。

  2. いや。上記でリンクしたように、NotRegisteredエラーはアンインストール中にのみトリガーされません。私の知る限り、これを行う標準的な方法はありません。 これらの投稿 のいくつかを見てください。

8
AL.