如何在通过REST API向Firebase添加对象时设置我们自己的密钥

时间:2016-12-21 11:13:12

标签: curl firebase firebase-realtime-database

我使用以下命令将对象添加到Firebase数据库。

$url = "https://myfb.firebaseio.com/api/types/ty/packs.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, $userData);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
        $jsonResponse = curl_exec($ch);
        if(curl_errno($ch))
        {
            echo 'Curl error: ' . curl_error($ch);
        }
 curl_close($ch);

$userData将保存在我们数据库中唯一生成的节点下,如下所示。 enter image description here

我想将自定义密钥提供给该节点。我是怎么做到的

3 个答案:

答案 0 :(得分:0)

将您的网址更改为您想要的ID:

Activity A

请参阅Franke van Puffelen的类似答案:Saving data to Firebase with REST

答案 1 :(得分:0)

如果您使用Firebase REST API通过自定义ID在Firebase中插入数据,并且没有任何子代(自动生成)ID,请使用“放置”而不是“发布”。

答案 2 :(得分:0)

Firebase文档对我们说:“ 如果使用rest api,则某些方法将被覆盖”,因此您必须使用标头X-HTTP-Method-Override:PUT或为php curl添加自定义方法。

例如;

<audio id="player" controls></audio>
<script>
  const player = document.getElementById('player');

  const handleSuccess = function(stream) {

    if (window.URL) {
      player.srcObject = stream;
    } else {
      player.src = stream;
    }
  };

  navigator.mediaDevices.getUserMedia({ audio: true, video: false })
      .then(handleSuccess);
</script>