一度にすべてのトピックを購読解除する方法はありますか?Firebase Messagingから一斉にすべてのトピックを購読解除する
私はFirebase Messagingを使用して、購読されているいくつかのトピックからプッシュ通知を受け取り、何とか1つずつ取り消すことなくすべてのトピックからの購読を解除する必要があります。それは可能ですか?
一度にすべてのトピックを購読解除する方法はありますか?Firebase Messagingから一斉にすべてのトピックを購読解除する
私はFirebase Messagingを使用して、購読されているいくつかのトピックからプッシュ通知を受け取り、何とか1つずつ取り消すことなくすべてのトピックからの購読を解除する必要があります。それは可能ですか?
あなたが使用することができます:あなたは、すべてのトピックから退会するために与えられたトークンとより呼び出し、複数の要求に加入して利用可能なすべてのトピックを照会するInstance APIを使用することができます
FirebaseMessaging.getInstance().unsubscribeFromTopic("Topic name");
。
ただし、すべてのトピックからの受信を停止したい場合、トークンはまったく役に立たない場合は、FirebaseInstanceId.getInstance().deleteInstanceId()
(参考:deleteInstanceId()と潜在的なIOExceptionのためのtry/catchで参照)を呼び出すと、新しいインスタンスIDとトークンから新しいトピックをサブスクライブすることができます。
これは誰かを助けることを望みます。
私の場合、 'instance'は保存しないので、動作しません。ユーザーは登録されたトピックの情報のみを取得します。 –
@LennonのインスタンスIDをリセットすると、登録されたすべての状態が削除されます。 – kirtan403
サブスクリプションされたトピックをすべて削除すると、どのようにインスタンスが削除されるのですか? –
これは最善の方法ではありませんが、動作します。 あなたは、データベース内のすべてのトピックのリストを格納し、ユーザーのサインアウト
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
それは働くことができますが、それはまだ一つ一つです。 –
は、私の知る限りこれは現時点では不可能であるAPI呼び出し – tyczj
を「すべて削除」のない並べ替えがない場合、すべてのトピックから退会することができます。 –
あなたはすべてのトピックのリストを取得し、それをループトラフすれば "1つ1つ"と考えますか? – tobifasc