Мой массив входит в мою базу данных, но он стирает другие массивы в моей базе данных firebase

<?php
//username
/*$mapId = $_GET['mapId']; 
$bike  = $_GET['bike'];
$lat   = (double)$_GET["lat"];
$lng   = (double)$_GET["lng"];
$ori   = (double)$_GET["ori"];*/

 $mapId = "2";
 $bike = "Yamaha ";
 $lat = 12346;
 $lng = 78945;
 $ori = 111111;
$time = time();

$url = 'https://granted-7cdeb.firebaseio.com/maps.json';
$arr = array($mapId =>array($bike =>array("coords"=>array("latitude"=>$lat, "longitude"=>$lng), "orientation"=>$ori, "timestamp"=>$time)));  
$data_string = json_encode($arr);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
echo $result = curl_exec($ch);

?>

Итак, проблема, с которой я сталкиваюсь, заключается в том, что когда я использую этот код, он отправляет мой массив в мою базу данных, но после того, как он отправляет массив. он удаляет массив, который уже там, я хотел бы просто добавить его в свой массив, но обновить lat, lng или ori. Я не хочу, чтобы он стирал массивы, которые или уже есть, как я могу это сделать.

удалите curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); и используйте вместо него curl_setopt($ch, CURLOPT_POST, 1);.

Freddy Delgado 03.09.2018 22:32

надоело, что теперь он не удаляет его, но продолжает множиться вместо обновления Yamaha

Real Connect 03.09.2018 23:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
32
1

Ответы 1

В базе данных Firebase Realtime действительно нет операции добавления индексированного массива. Что он предлагает, так это операцию «проталкивания», при которой он генерирует новый зависящий от времени уникальный строковый идентификатор и добавляет ваши данные в дочерний элемент с этим идентификатором. Вы рассматриваете уникальные строковые идентификаторы как своего рода индекс массива. Это обычный способ добавления новых данных к дочернему элементу, а не перезаписи всего.

При использовании REST API базы данных Firebase в реальном времени вы будете использовать запрос СООБЩЕНИЕ для выполнения push.

не могли бы вы дать мне пример того, как использовать этот метод, я новичок в кодировании

Real Connect 05.09.2018 12:10

Другие вопросы по теме