使用curl更新firebase数据,而不会删除我已存储的数据

时间:2018-09-05 09:21:53

标签: php arrays firebase curl firebase-realtime-database

所以我一直在研究这段代码,我不能用手指指着我正在使用php将数据发送到firebase。这个发送的数据是我想要的,但是我已经拥有的任何数据都会擦除它,而不是按照我的期望更新它。

  $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);

这是我执行此代码时收到的结果

{"2":{"suzuki":{"coords":{"latitude":32.6990593,"longitude":-117.0279802},"orientation":259.61241243675,"timestamp":1536138065}}}

当我这样尝试时

 $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_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);

它会上传多个数组,但不会更新其经纬度,而是创建一个名称并上传多次

{"name":"-LLcxfR1R7w2j5FcWhdA"}

firebase data

请帮助我,我正在尝试完成发送这种性质的数组

{"2":{"suzuki":{"coords":{"latitude":32.6990593,"longitude":-117.0279802},"orientation":259.61241243675,"timestamp":1536138065}}}

我有一个跟踪用户位置的网站,并将其发送到我的Firebase表MAPS,然后绘制用户位置,以便他们可以查看彼此的位置。

0 个答案:

没有答案