Я отправляю данные в мой PHP API, используя JSON. Я хочу отправить push-уведомление своему пользователю Android с этим API. Я сталкиваюсь с одной странной проблемой в этом.
Из JSON отправляю Mobile Number
, Mobile Number Status
а также User Id
,
У меня есть две таблицы в моей базе данных:
user
который имеет поля под названием id
, fcm
а также fcm_enabled
number_list
который имеет поля под названием number
, name
а также user_id
Теперь я хочу отправить push-уведомление для любого статуса номера, который мы получаем из JSON в 1
, Для отправки уведомления необходимо проверить, fcm_enabled=1
то нужно получить fcm
ключ от fcm
поле из table 1
Пользователь и name
от table 2
имя
Он нормально работает в нормальных условиях, но если два пользователя имеют один и тот же номер мобильного телефона, то я получаю два уведомления на одном устройстве и одно уведомление на другом.
Я думаю, что-то не так в моем запросе. Дайте мне знать, если кто-то может помочь мне решить мою проблему. Я пробовал последние два дня, но безуспешно.
$number = $_GET["number"];
$status = $_GET["status"];
$userIds = $_GET["userId"];
$sql = "";
for($i = 0; $i < count($number); $i++) {
if($status[$i] == 1) {
$sqlSelect = "SELECT t2.name, t1.fcm, t1.fcm_enabled FROM user AS t1 INNER JOIN number_list AS t2 ON t1.id = t2.user_id WHERE t2.number = '$number[$i]'";
$resultSelect = $conn->query($sqlSelect);
if($resultSelect) {
while($row = $resultSelect->fetch_row()) {
if($row[2] == 1) {
sendFCM(array("title" => $row[0] . " is Online", "body" => ""), array("message" => ""), $row[1]);
}
}
}
}
}
Благодарю.
Если есть одинаковый номер для двух пользователей, может быть, он извлекает дубликаты записей пользователей. «Группировать по» номер для извлечения может помочь вам.
Обновлен запрос:
$sqlSelect = "SELECT t2.name, t1.fcm, t1.fcm_enabled FROM user AS t1 INNER JOIN number_list AS t2 ON t1.id = t2.user_id WHERE t2.number = '$number[$i]' GROUP BY t1.id";
Других решений пока нет …