java — firebase — отправлять уведомления всем

Я хочу отправить фоновое уведомление от fcm всем своим пользователям. Это мой код, единственная проблема, с которой я столкнулся, заключается в том, что я должен поставить идентификатор токена. Мне нужно отправить уведомление всем моим пользователям без определения значений токенов

Это мой код:

    <?php
define('API_ACCESS_KEY','Api');
$fcmUrl = 'https://fcm.googleapis.com/fcm/send';
$token='token';

$notification = [
'title' =>'title',
'body' => 'body of message.',
'icon' =>'myIcon',
'sound' => 'mySound'
];
$extraNotificationData = ["message" => $notification,"moredata" =>'dd'];

$fcmNotification = [
//'registration_ids' => $tokenList, //multple token array
'to'        => $token, //single token
'notification' => $notification,
'data' => $extraNotificationData
];

$headers = [
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
];


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$fcmUrl);
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($fcmNotification));
$result = curl_exec($ch);
curl_close($ch);


echo $result;
?>

Он работает нормально и успешно отправляет уведомления, но как я могу отправить уведомление всем?

0

Решение

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

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

FirebaseMessaging.getInstance().subscribeToTopic("your_topic");

Затем вы можете отправить уведомление в эту тему, чтобы уведомление было отправлено всем пользователям.

'to' => '/topics/your_topic', // using topic instead of token
1

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

Если я получу ваш вопрос.

Вам необходимо подписаться Topic и тогда вам просто нужно использовать эту тему.
Пользователи, которые подписались на него, получат уведомление.

Документы: —

На основе модели публикации / подписки обмен сообщениями по темам FCM позволяет отправлять сообщения на несколько устройств, которые выбрали определенную тему. По мере необходимости вы создаете тематические сообщения, а FCM обеспечивает надежную маршрутизацию и доставку сообщений на нужные устройства.

https://firebase.google.com/docs/cloud-messaging/android/topic-messaging

0

Есть два способа отправить уведомление нескольким пользователям.

  1. Создайте тему со всеми пользователями в ней и отправьте push-сообщение в эту тему.
    Пример: https://firebase.google.com/docs/cloud-messaging/android/send-multiple

  2. Отправьте уведомление приложению с идентификатором пакета. Но это отправит уведомление даже не авторизованному пользователю.

0