ユーザがアプリケーションからログアウトしても、デバイスに通知を受け取らないようにするにはどうすればよいですか。Firebase Cloud Messaging - ログアウトの処理
私は
FirebaseInstanceId.getInstance().deleteToken(FirebaseInstanceId.getInstance().getId(), FirebaseMessaging.INSTANCE_ID_SCOPE)
を試してみましたしかし、私はまだ私のデバイスのregistration_id
に通知を受け取ります。
私も、これは私が削除しなければならないトークンであることを確認しました:
FirebaseInstanceId.getInstance().getToken(FirebaseInstanceId.getInstance().getId(), FirebaseMessaging.INSTANCE_ID_SCOPE)
または単にFirebaseInstanceId.getInstance().getToken()
)。
私もFirebaseInstanceId.getInstance().deleteInstanceId()
を試しましたが、次回私がFirebaseInstanceId.getInstance.getToken
と呼んだときは、それは2回目の試行で動作します。
私はdeleteInstanceId
の後にすぐにgetToken()
と呼ぶことができましたが、ハックのように見えます。また、実行してはならないと述べたthis answerもありますが、明らかに動作しないトークンを削除することを提案しています。
これを処理する正しい方法は何ですか?
これは、私がgetTokenまたはdeleteTokenを呼び出したときにエラーを投げなかった唯一の "送信者ID"です。私がfirebaseコンソールからテキストプロジェクトIDを使用したとき、両方のメソッドが投げられました。それから私はgoogleservices.jsonで見つけた数字のIDを使用し、それがうまくいったように見えました。それから、getId()を渡して、それを投げなかった。だから私はそれがわかった。 –
ハックに関しては、deleteInstanceIdの直後に呼び出さなければならないので、初めてnullを返し、それが動作するためにログイン中に呼び出すようにしてください。だから私はそれがハックだと思うのです。 –
後でいくつかのテストを行い、その動作を再現できるかどうか試してみます。時間があればここに戻ってきます。乾杯! –