я использую этот скрипт 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 и я не уверен, что проблема в бэкенде или во внешнем интерфейсе.
Я не думаю, что возможно удалить уведомление после того, как оно было отправлено на устройство через API Firebase.
Одним из возможных решений, которое я вижу, является создание уведомления POST, как только пользователь увидит сообщение для отправки его на ваш сервер, который отправляет новое уведомление с определенным «флагом» и не отображает это новое уведомление из-за «флага» (вы реализовать проверку if в вашем приложении). И когда устройство читает этот флаг, оно удаляет уведомление на основе «флага». Вы делаете это с cancel()
который в NotificationManager
, Документация
Лучшее решение — использовать опцию Device Group Firebase.
Таким образом, вы можете легко зарегистрировать несколько устройств одного и того же пользователя под уникальным ключом. Поэтому, когда вы отправляете push-уведомление этому пользователю на двух разных устройствах (например, браузере и смартфоне), пользователь читает уведомление с одного устройства, и оно волшебным образом исчезает с другого.
Это очень просто сделать, если вы уже в мире Cordova и Firebase.
Вот ссылка: https://firebase.google.com/docs/cloud-messaging/js/device-group