FCM от нескольких отправителей, но в одном приложении - PullRequest
0 голосов
/ 13 ноября 2018

отправлять несколько уведомлений с использованием FCM, но в пределах одной и той же серверной части, говоря, что существует несколько типов уведомлений, возможно, с разной полезной нагрузкой данных и разными заголовками уведомлений. Я хочу, чтобы менеджер уведомлений мог различать каждое уведомление нана стороне клиента и отправьте их на другой Notification Channels?

РЕДАКТИРОВАТЬ Я попытался установить параметр уведомлений_id, и он не работает.

РЕДАКТИРОВАТЬ: я могу добавить полезную нагрузку данных и ограничить уведомление в одном из моихклассы и добавить оператор переключения, который будет делиться в соответствии с моим уведомлением, но мне нужно обрабатывать данные в фоновом режиме, а не на переднем плане.

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        notificationSwitch(remoteMessage);
    }

    private void notificationSwitch(RemoteMessage remoteMessage) {
        RemoteMessage.Notification notification = remoteMessage.getNotification();

        if (notification.getTitle().equals("TypeOne")){
            TypeOneSendNotification(remoteMessage);
        }
        else{
            TypeTwosendNotification(remoteMessage);
        }

    }


 //Ofcourse we are able to switch based on the title, or different data payloads 

РЕДАКТИРОВАТЬ: я преобразовал в полезную нагрузку данных и отредактировал заголовок уведомления длябыть в состоянии переключить вышеуказанное редактирование

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Отвечая на вопрос в заголовке: FCM from multiple senders but within the same app

Если sender == Firebase Project, тогда я не думаю, что это возможно.

Если sender == a client inside the same Firebase Project (например, приложение для iOS, несколько серверов, другое приложение для Android), вам необходимо создать эти приложения в вашем проекте Firebase (для приложений iOS и Android) и использовать ключ сервера (для серверов)

Если sender == function (например, «Обновить объект A», «показать уведомление для продвижения» и т. Д.), То вы можете использовать поле data внутри уведомления. Обычно мы добавляем поле action в поле data. И receiver (приложение для iOS или Android), и sender (обычно это сервер, но также может быть мобильным приложением) знают список возможных action s. Receiver s знают, что делать, когда они их получают (если приложение получает «Обновить объект A», то оно запускает EntityAUpdateService).

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

Я получил эту работу, реализовав оператор switch для заголовка, это просто хак, но он определенно работает

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
            super.onMessageReceived(remoteMessage);
            notificationSwitch(remoteMessage);
    }

и в моей функции переключения уведомлений, поскольку в качестве аргумента у меня уже есть remoteMessage, я просто реализую своих отправителей.

private void notificationSwitch(RemoteMessage remoteMessage) {
        RemoteMessage.Notification notification = remoteMessage.getNotification();

      if(notification.getTitle() != null){
        switch (notification.getTitle()) {
            case "SenderOne":
                SenderOneSendNotification(remoteMessage);
                break;
            case "SenderTwo":
                SenderTwoSendNotification(remoteMessage);
                break;
            case "SenderThree":
                SenderThreeSendNotification(remoteMessage);
                break;
            case "SenderFour":
                SenderFourSendNotificaation(remoteMessage);
                break;
            default:
                DefaultSender(remoteMessage);
                break;
        }
    }
0 голосов
/ 13 ноября 2018

Создайте ключ уведомлений, который идентифицирует группу устройств путем сопоставления определенной группы (обычно пользователя) со всеми ассоциированными маркерами регистрации группы. Вы можете создавать ключи уведомлений на сервере приложений или в клиентских приложениях Android.

пожалуйста, проверьте эту ссылку https://firebase.google.com/docs/cloud-messaging/android/device-group

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