Как диагностировать уведомления, которые имеют результат GCM «Успех», но не достигают устройства - PullRequest
0 голосов
/ 10 октября 2018

Это действительно продолжение другого вопроса , который я опубликовал, за исключением того, что теперь я использую телеметрию push-уведомлений Azure, и Google прекратил диагностику FCM в консоли Play.

Я получаю отчеты отпользователи говорят, что они не получили уведомления.Но телеметрия Azure показывает результаты, подобные этим, даже для следующих уведомлений:

"GcmOutcomeCounts": {
    "Outcome": {
        "Name": "Success",
        "Count": "1"
    }
}

Crashlytics не показывает сбоев, поэтому единственное, что я придумал, - это вызов API-интерфейса регистрации, чтобы увидеть, где онне работает или перестает работать, но в этом случае оно даже не достигает приложения.

Должен быть способ точно определить, где и почему происходит сбой уведомления.Что это?

1 Ответ

0 голосов
/ 14 октября 2018

Должен быть способ точно определить, где и почему происходит сбой уведомления.Что это?

Вот мои 2 цента.В общем, для уведомлений может быть много точек отказа.Ваша цель состоит в том, чтобы выяснить, в какой точке находится проблема.Ниже приведена диаграмма с домашней страницы FCM :

image

Potential failure points:

  1. When the app sends registration token to your server.
  2. Handling update of the FCM registration token.

    • If there is an error sending registration token, then you can have a custom non-fatal exception send to Crashlytics. Since you already seem to have the token I don't think it is the issue. However in в некоторых случаях токен может измениться, поэтому просто дважды проверьте, что вы внедряете onNewToken() и отправляетеновый регистрационный токен на сервер в случае его изменения.
  3. При отправке уведомления с вашего сервера на FCM.

  4. При отправке из FCM на пользовательское устройство.

    • Для подтверждения отсутствия проблем при отправке уведомления с вашего сервера -> FCM -> пользовательское устройствоВы можете попробовать получить квитанцию ​​о доставке от FCM, как указано здесь: Получить квитанции о доставке .В нем говорится:

      Для клиентских приложений Android и Chrome вы можете получать квитанции о доставке (отправленные из FCM на сервер приложений) , когда устройство подтверждает, что оно получило сообщение, отправленное FCM .

      Чтобы включить эту функцию, сообщение, которое сервер приложений отправляет в FCM, должно содержать поле delivery_receipt_requested .Когда для этого поля установлено значение true, FCM отправляет квитанцию ​​о доставке, когда устройство подтверждает, что оно получило определенное сообщение.

    • Кроме того, я иногда видел проблемы с включенным брандмауэромсеть пользователя, в те времена, когда был GCM.Может быть проблема, когда брандмауэр блокирует уведомление. Диапазон IP-адресов сервера push-уведомлений Google GCM? Попробуйте открыть потенциальный список портов, если это так, или попробуйте провести тестирование в сети передачи данных оператора.Поскольку вы упоминаете, что вы должны включить журнал в различных точках приложения, но он никогда не достигает.Рассмотрение вышеперечисленных пунктов может быть следующим шагом.

  5. Обработка уведомлений в вашем приложении / отображение уведомления в ящике уведомлений.

Надеюсь, это немного поможет в отладке вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...