Удалить ключ данных из облачного сообщения FirebaseJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Удалить ключ данных из облачного сообщения Firebase

Сообщение Anonymous »

Я реализую push-уведомления для приложений React Native — как iOS, так и Android.
В настоящее время я сталкиваюсь с проблемой, связанной с тем, что SDK администратора Firebase в Java (мой бэкэнд) всегда отправляет ключ данных, даже если я хочу активировать полезную нагрузку только для уведомлений. Отправка смешанного сообщения предотвращает запуск фонового обработчика и заставляет ОС отображать уведомление, но затем оно снова регистрируется, когда я открываю приложение, и поэтому оно отображается дважды. Это происходит только в свернутом состоянии.
Это мой внутренний код:

Код: Выделить всё

public static List sendPushNotificationToUsers(String title, String message, Collection devices) throws FirebaseMessagingException {

AndroidConfig androidConfig = AndroidConfig.builder()
.setTtl(30000)
//.putData(title, message)
.setNotification(AndroidNotification.builder().setIcon("ic_large_notification_icon").build())
.setPriority(AndroidConfig.Priority.HIGH).build();

ApnsConfig apnsConfig = ApnsConfig.builder()
//              .putHeader("apns-topic", "com.nutrisoft.mobilenutri")
//              .putHeader("apns-priority", "5")
//              .putHeader("apns-push-type", "background")
.setAps(Aps.builder().setContentAvailable(true).build())
.build();

Notification notification = Notification.builder().setTitle(title).setBody(message).build();

MulticastMessage msg = MulticastMessage.builder()
.addAllTokens(devices.stream().map(userDevice -> userDevice.getDeviceToken()).collect(Collectors.toList()))
//                .putData("title", title)
//                .putData("message", message)
.setAndroidConfig(androidConfig)
.setApnsConfig(apnsConfig)
.setNotification(notification)
.build();

BatchResponse response = FirebaseService.fcm.sendMulticast(msg);

List ids = response.getResponses()
.stream()
.map(r -> r.isSuccessful())
.collect(Collectors.toList());
System.out.println(ids);

return ids;
}
В результате такая полезная нагрузка будет получена в onMessageReceived, а не в фоновом обработчике:

{"contentAvailable" : true, "data": {}, "from": "688859109590", "messageId": "1719432193006523", "notification": {"body": "Test", "title": "Obavijest"}

Как я могу отправить это вообще без ключа данных?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ud-message
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Инициализация облачного сообщения Firebase из облачной функции Google
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как удалить ключ в базе данных Firebase
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как удалить ключ в базе данных Firebase
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»