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

я использую этот скрипт PHP для отправки уведомления Firebase:

...
$fields = [
'to' => DEVICE_TOKEN,
'notification' => [
'title'     => "Title",
'body' => 'notification body',
'tag' => 'tag',
],
];
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
...

и это правильно появляется на моем андроид. Я также могу редактировать уведомление, используя tag имущество

Но как я могу удалить уведомление? Если кто-то прочитал его в браузере, например, мне нужно удалить это уведомление с других устройств.

Я пытался отправить пустым body в отредактированном уведомлении, но не работает.

На Кордова интерфейс я использую Cordova-плагин-firebase и я не уверен, что проблема в бэкенде или во внешнем интерфейсе.

1

Решение

Я не думаю, что возможно удалить уведомление после того, как оно было отправлено на устройство через API Firebase.

Одним из возможных решений, которое я вижу, является создание уведомления POST, как только пользователь увидит сообщение для отправки его на ваш сервер, который отправляет новое уведомление с определенным «флагом» и не отображает это новое уведомление из-за «флага» (вы реализовать проверку if в вашем приложении). И когда устройство читает этот флаг, оно удаляет уведомление на основе «флага». Вы делаете это с cancel() который в NotificationManager, Документация

2

Другие решения

Лучшее решение — использовать опцию Device Group Firebase.

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

Это очень просто сделать, если вы уже в мире Cordova и Firebase.

Вот ссылка: https://firebase.google.com/docs/cloud-messaging/js/device-group

0

По вопросам рекламы [email protected]