Отменить подписку на все темы сразу из Firebase Messaging
Можно ли отказаться от подписки на все темы сразу?
Я использую Firebase Messaging для получения push-уведомления от некоторых подписчиков, и мне почему-то нужно отказаться от подписки на все темы, не отпираясь подпиской по одному. Возможно ли это?
Ответы
Ответ 1
Вы можете использовать API-интерфейс экземпляра для запроса всех доступных тем, подписанных на данный токен, а также для вызова нескольких запросов для отмены подписки на все темы.
Однако, если вы хотите прекратить получать из всех тем, а затем токен не полезен вообще, вы можете вызвать FirebaseInstanceId.deleteInstanceId()
(ссылка: deleteInstanceId()), который будет reset идентификатором экземпляра, а затем вы можете подписаться на новые темы из нового идентификатора экземпляра и токена.
Надеюсь, это поможет кому-то.
Ответ 2
Я знаю, что это не лучший способ, но он работает!
Вы можете сохранить список всех тем в базе данных и затем отказаться от подписки на все темы, когда пользовательские выходы
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
Ответ 3
Вы можете использовать:
FirebaseMessaging.getInstance().unsubscribeFromTopic("Topic name");