FCM не видит сообщения, отправленные из весеннего бэкэнда - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение android, настроенное в Firebase Cloud Messaging, и когда я отправляю уведомление из консоли, я вижу уведомление в приложении Android.

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

@Slf4j
@Service
public class FCMService {


    public void sendMessageWithData() throws FirebaseMessagingException {
        Message message = getPreconfiguredMessageWithData();
        String response = sendAndGetResponse(message);
        log.info("Sent message with data.");
    }


    private String sendAndGetResponse(Message message) throws FirebaseMessagingException {
        return FirebaseMessaging.getInstance().send(message);
    }

    private AndroidConfig getAndroidConfig(String topic) {
        return AndroidConfig.builder()
            .setTtl(Duration.ofMinutes(2).toMillis()).setCollapseKey(topic)
            .setPriority(AndroidConfig.Priority.HIGH)
            .setNotification(AndroidNotification.builder().setSound("default")
                .setColor("#FFFF00").setTag(topic).build()).build();
    }

    private ApnsConfig getApnsConfig(String topic) {
        return ApnsConfig.builder()
            .setAps(Aps.builder().setCategory(topic).setThreadId(topic).build()).build();
    }

    private Message getPreconfiguredMessageWithData() {
        return getPreconfiguredMessageBuilder().setTopic("all")
            .putData("test", "data")
            .build();
    }


    private Message.Builder getPreconfiguredMessageBuilder() {
        AndroidConfig androidConfig = getAndroidConfig("all");
        ApnsConfig apnsConfig = getApnsConfig("all");
        return Message.builder()
            .setApnsConfig(apnsConfig).setAndroidConfig(androidConfig)
            .setNotification(
                new Notification("sample title", "sample message"));
    }


}

Сообщение отправлено правильно, я получаю идентификатор сообщения в ответе, но уведомление не отображается в приложении, и я не вижу его как новое уведомление в консоли Firebase. В чем проблема? Я все еще что-то упускаю?

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете протестировать свое приложение, отправив уведомление pu sh с curl, с помощью которого вы можете проверить, есть ли проблема в вашем сервисе или в вашем приложении

curl -X POST -H "Authorization: Bearer YOUR-TOKEN" -H "Content-Type: application/json" -d '{
    "message":{
    "token":"TARGET_DEVICE_TOKEN",
    "notification":{
      "title":"Hello",
      "body":"This is a text message!"
    }
  }
}' https://fcm.googleapis.com/v1/projects/YOUR-PROJECT-SHORT-NAME/messages:send
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...