Как настроить Push-уведомление Firebase

Я нашел различные примеры того, как настроить сообщение json для push-уведомлений в firebase для Android и ios. Но у меня проблема, что не все push-сообщения приходят в мои клиентские приложения. Я заметил, что на разных версиях андроида это работает по-разному. Некоторые из них не получают никаких сообщений, некоторые из них без настроенной мелодии звонка, некоторые из них только с мелодией по умолчанию, а некоторые работают нормально. На стороне клиента, я думаю, все должно быть хорошо. Я использую формы xamarin для этого. Мое сообщение json выглядит так. Теперь я прочитал, что я должен удалить тег уведомления, но тогда он работает для старых андроидов?

 {
"to": "/topics/MYTOPIC",
"notification": {
    "title": null,
    "body": "test",
    "sound": "de900",
    "content_available": true
},
"priority": "high",
"data": {
    "missionGuid": "",
    "eventGuid": "",
    "messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
    "ric": "199900",
    "title": null,
    "body": "test",
    "priority": "high",
    "sound": "de900"
},
"android": {
    "priority": "high",
    "notification": {
        "title": null,
        "body": "test",
        "sound": "de900",
        "content_available": true
    },
    "data": {
        "missionGuid": "",
        "eventGuid": "",
        "messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
        "ric": "199900",
        "title": null,
        "body": "test",
        "priority": "high",
        "sound": "de900"
    },
},
"apns": {
    "headers": {
        "apns-priority": 10
    },
    "payload": {
        "aps": {
            "alert": {
                "title": null,
                "body": "test"
            },
            "sound": "de900"
        }
    }
}

}

Снятие блокировки уведомлений работает на 4.4, 5.х, тестировалось, насчет младших версий не знаю. Но да, с некоторыми устройствами бывают разные проблемы. Например, stackoverflow.com/questions/52736782/…

Zhebzhik Babich 05.04.2019 10:24

Это может быть вам интересно stackoverflow.com/a/39505298/6055194stackoverflow.com/a/37429495/6055194

Zhebzhik Babich 05.04.2019 10:33

Проверьте этот stackoverflow.com/a/50737948/5805371

Yuri Popiv 05.04.2019 10:38
0
3
281
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Насколько я знаю, настройка "priority": "high" — это единственное, что вы можете сделать, чтобы уведомления доставлялись немедленно. Если они по-прежнему ничего не могут получить, вероятно, это что-то на стороне клиента.

Предположительно, для мелодии звонка "sound": "WHATEVER" должен указывать звук, но опять же, из-за разных OEM-производителей и вариантов системы может быть более последовательно просто отправить сообщение с данными и отправить уведомление самостоятельно при получении, но вы должны знайте, что даже это, вероятно, не гарантирует ни доставки, ни рингтона.

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

Ответ принят как подходящий

Установка "priority" и "sound" в полезной нагрузке notification никогда не помогала мне. Поведение этого было очень странным. Я решил использовать только Data полезную нагрузку и обрабатывать оба background/foreground сообщения внутри onMessageReceived метода и показывать ваши пользовательские уведомления.

После этого я смог показать уведомления с самыми высокими priority, pop-ups и звуком.

Подробнее о сообщениях данных Firebase здесь

как я могу обрабатывать фон с полученным сообщением. это работает не только для переднего плана?

cpiock 05.04.2019 10:45

@cpiock Проверьте этот лист firebase.google.com/docs/cloud-messaging/android/…. При использовании Data срабатывает как передний план, так и фон onMessageReceived

Yuri Popiv 05.04.2019 10:47

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

cpiock 05.04.2019 10:54

Другие вопросы по теме