Уведомление о двойном нажатии, созданное с помощью React Native + Expo + FCM - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать приложение, которое может получать push-уведомления.Push-уведомления отправляются с использованием AWS SNS и токена FCM вместо Expo's Token.Уведомления были получены, однако, каждое уведомление было получено дважды в системном трее.Я пытался использовать телефон без установленной экспо, но он все еще получил 2 уведомления.

это мой запрос полезной нагрузки при отправке на SNS

{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}

Есть идеи, почему это происходит?Я готов предоставить код, однако я понятия не имею, какую часть я должен поставить.Вот один пример.Название приложения такое же, но в первом уведомлении есть логотип выставки. update : после отправки через консоль firebase я понял, что уведомление с иконкой expo является правильным.

EDIT : после попытки отправить уведомление с консоли firebase,Мне удалось получить только 1 уведомление.Проблема в SNS?

РЕДАКТИРОВАТЬ [2] Я взглянул на свой журнал Cloudwatch Log для приложения платформы SNS.А метрики NumberOfMessagesPublished предполагают, что опубликовано только 1 сообщение.Таким образом, я предполагаю, что это исключает возможность вызова API SNS дважды.

EDIT [3] Я пытался использовать пакет go-fcm для прямой отправки уведомления в fcm.Я получил 2 уведомления даже без использования SNS.Но почему отправка уведомления в fcm напрямую имеет другой выход, чем при использовании консоли Firebase?

enter image description here

ОБНОВЛЕНИЕ

Наконец, мне удалось заставить его работать, установив поле tag в поле notification для предотвращения дублирования.

Таким образом, полезная нагрузка выглядит следующим образом:

{
"GCM": "{ \"notification\": { \"text\": \"test message\", \"tag\": \"testing\" } }"
}

Однако этодо сих пор не отвечает на вопрос, почему я получил дубликаты: (

1 Ответ

0 голосов
/ 28 февраля 2019

У вас есть приложение, которое вы собрали и установили в своем телефоне?

Я думаю, что проблема в том, что у вас установлена ​​Expo и "Ваше приложение".

Если нет, я думаю, чтоВы продублировали токен Экспо.Помните, что для Push-уведомлений рекомендуется обновлять токен Expo каждый раз при запуске приложения.

Вы не можете проверить свои уведомления с помощью инструмента expo.https://expo.io/dashboard/notifications

...