2016-10-15 12 views
7

Согласно Firebase cloud messaging documentation, для подписки пользователя на тему Мне нужно позвонитьAndroid: Подписаться на Firebase Cloud Messaging (ТСМ) Тема

FirebaseMessaging.getInstance().subscribeToTopic("news"); 
  1. В моем приложении мне нужно все пользователи должны быть подписаны на мое облако тема обмена сообщениями. Так как возвращаемое значение составляет void, вопрос в том, как могу понять, что подписка прошла успешно?
  2. Является ли плохой практикой звонить subscribeToTopic каждый раз, когда начинается мое приложение ?

ответ

6

1. ..how я могу понять, что подписка была успешной?

В документах нет ничего особого упоминания об ответе, полученном при успешной подписке.

Однако, если вам необходимо поручить всем вашим пользователям подписку на конкретную тему, вы должны позвонить по номеру subscribeToTopic при первой установке приложения. Скорее всего, убедитесь, что есть подключение к Интернету (поскольку оно, вероятно, было загружено и установлено через Play Store), и подписка прошла успешно.

Однако, если вы хотите убедиться, вы также можете обращаться с ним через свой собственный сервер приложений. Как упоминалось в документе docs:

Вы можете использовать API-интерфейсы экземпляров для выполнения основных задач управления темами со стороны сервера. Учитывая регистрационные токены экземпляров клиентского приложения, вы можете сделать следующее:

  • Узнайте подробности о подписках экземпляра клиентского приложения, включая каждое имя темы и дату подписания. См. Get information about app instances.

Проверка через регистрационные маркеры, если они не были успешно subsribed к вашей теме, отправить уведомление на него, где он будет запускать приложение клиента для вызова subscribeToTopic.

2. Является ли плохая практика вызывать subscribeToTopic каждый раз, когда мое приложение начинается?

Редактировать: добавление его из раздела комментариев: подписка на начало приложения должна быть прекрасной.

Спасибо @FrankvanPuffelen для проверки. :)

+3

2) нет, подписка на темы в начале приложения в порядке. –

+1

@FrankvanPuffelen и еще один вопрос? Повторяется ли 'subscribeToTopic' на фоне, который будет отправлен службами google или такой вещи (если интернет-соединение не было доступно в момент выполнения команды)? – VSB

+2

@VSB: 'subscribeToTopic' будет продолжать повторять на фоне, но привязан к жизненному циклу вашего приложения (а не к сервисам google, пока). Поэтому, если ваше приложение будет убито, оно перестанет повторять попытку, пока приложение не будет открыто снова.(действие сохраняется, поэтому оно будет возобновлено при повторном запуске приложения) –

Смежные вопросы