2016-07-05 28 views
12

一度にすべてのトピックを購読解除する方法はありますか?Firebase Messagingから一斉にすべてのトピックを購読解除する

私はFirebase Messagingを使用して、購読されているいくつかのトピックからプッシュ通知を受け取り、何とか1つずつ取り消すことなくすべてのトピックからの購読を解除する必要があります。それは可能ですか?

+3

は、私の知る限りこれは現時点では不可能であるAPI呼び出し – tyczj

+1

を「すべて削除」のない並べ替えがない場合、すべてのトピックから退会することができます。 –

+0

あなたはすべてのトピックのリストを取得し、それをループトラフすれば "1つ1つ"と考えますか? – tobifasc

答えて

-4

あなたが使用することができます:あなたは、すべてのトピックから退会するために与えられたトークンとより呼び出し、複数の要求に加入して利用可能なすべてのトピックを照会するInstance APIを使用することができます

FirebaseMessaging.getInstance().unsubscribeFromTopic("Topic name"); 
+1

一度に登録を解除することはありません。私は各イベントを退会する必要があり、それは私がしたくないものです。 –

+0

今すぐFirebaseはすべてのイベントを一度に購読解除する方法を提供していません。 – Abhishek

+0

それは1つのトピックのみをサブスクライブしない – ziniestro

7

ただし、すべてのトピックからの受信を停止したい場合、トークンはまったく役に立たない場合は、FirebaseInstanceId.getInstance().deleteInstanceId()(参考:deleteInstanceId()と潜在的なIOExceptionのためのtry/catchで参照)を呼び出すと、新しいインスタンスIDとトークンから新しいトピックをサブスクライブすることができます。

これは誰かを助けることを望みます。

+0

私の場合、 'instance'は保存しないので、動作しません。ユーザーは登録されたトピックの情報のみを取得します。 –

+0

@LennonのインスタンスIDをリセットすると、登録されたすべての状態が削除されます。 – kirtan403

+0

サブスクリプションされたトピックをすべて削除すると、どのようにインスタンスが削除されるのですか? –

0

これは最善の方法ではありませんが、動作します。 あなたは、データベース内のすべてのトピックのリストを格納し、ユーザーのサインアウト

final FirebaseMessaging messaging= FirebaseMessaging.getInstance(); 
     FirebaseDatabase.getInstance().getReference().child("topics").addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       String topic = dataSnapshot.getValue(String.class); 
       messaging.unsubscribeFromTopic(topic); 
}...//rest code 
+0

それは働くことができますが、それはまだ一つ一つです。 –

関連する問題