Android Firebase Push-уведомление с использованием переполнения стека

Я реализовал FCM для своего приложения. Я использую php для отправки уведомления о зарегистрированных идентификаторах в моей БД. Я хочу отправить конкретное сообщение для каждого пользователя. Теперь, когда я нажимаю на уведомление, я получаю одно и то же сообщение для всех пользователей.

Пример:
У меня есть два зарегистрированных пользователя в БД:
1- Пользователь вызвал Джона, и его пользовательское сообщение «Добро пожаловать» 2- Пользователь вызвал Марко, и его пользовательское сообщение «С днем ​​рождения»

Теперь, когда я нажимаю уведомление, все два пользователя получают одно и то же сообщение «Добро пожаловать».

Это мой код:

<?php
function send_notification ($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message,
'priority'             => "high",

);
$headers = array(
'Authorization:key =  FCM Server Key',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}

include("conn.php");
mysql_select_db($db, $conn);
$query_users = sprintf("Select token, message From users");
$users = mysql_query($query_users, $conn) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
$totalRows_users = mysql_num_rows($users);

if($totalRows_users > 0 ) {
do {

$tokens[] = $row_users["token"];

$message = $row_users["message"];
} while ($row_users = mysql_fetch_assoc($users));
}

$message_status = send_notification($tokens, $message);
echo $message_status;
?>

0

Решение

вы можете отправлять fcm с несколькими токенами одновременно (ограничение в 1000 токенов, если я не ошибаюсь), но вы не можете отправлять с несколькими сообщениями

сообщение, которое вы отправляете, является сообщением из вашей последней записи в ваших запросах

 $message = $row_users["message"];

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

send_notification($tokens, $message);

многократно.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector