Как разместить данные в Firebase, используя PHP?

Я использую Laravel Framework и интегрирован с базой данных Firebase. Я пытаюсь опубликовать данные в Firebase следующим образом, но они не работают.

    $url = "https://test.firebaseio.com/test_api/types.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=6");
$jsonResponse = curl_exec($ch);
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);

Я не в чем проблема. А также я попытался сделать это с помощью почтальона, и он говорит следующее сообщение об ошибке. "error": "Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names." Как мне это решить?

0

Решение

Попробуйте следующий

    $data = '{"id": "6"}';

$url = "https://test.firebaseio.com/test_api/types.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));
$jsonResponse = curl_exec($ch);
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);

Firebase принимает объект JSON, и вы должны опубликовать $data как объект JSON. И вы можете использовать Content-Type: application/x-www-form-urlencoded или же Content-Type: text/plain

4

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

id = 6 не является допустимым JSON. {«id»: 6}, вероятно, вы имели в виду.

пытаться

$json='{"id":6}';
curl_setopt_array($ch, array(
CURLOPT_POST=>1,
CURLOPT_HTTPHEADER=>array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json)
),
CURLOPT_POSTFIELDS=>$json
));

РЕДАКТИРОВАТЬ: или если сайт принимает обычные кодировки POST multipart / form-data / application / x-www-form-urlencoded, вы, вероятно, захотите, для кодирования multipart / form-data:

curl_setopt($ch, CURLOPT_POSTFIELDS, array('id'=>6));

для приложения / кодировка x-www-form-urlencoded:

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('id'=>6)));
1

По вопросам рекламы [email protected]