使用PHP CURL进行Firebase设置

时间:2018-08-16 10:05:06

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

尝试从Firebase检索数据,但出现错误。 请帮助我进行设置。

我的代码是

function Process($url){
    $Return = new stdClass;

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0);  // remove header 
    curl_setopt($ch, CURLOPT_NOBODY, 0); // remove body 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

    if($Return->response = curl_exec($ch)){
        $Return->response = json_decode($Return->response);
    }

    $Return->httpCode   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $Return->curl_errno = curl_errno($ch);
    $Return->curl_error = curl_error($ch); 

    curl_close($ch); 
    return $Return;
}

$Info = Process('https://project-id.firebaseio.com/users/jack/name.json');

但得到回复未经授权的请求。

1 个答案:

答案 0 :(得分:1)

您需要将授权密钥添加到curl的标题部分。 服务器密钥或令牌取决于您尝试从Firebase检索哪些信息。

如果其有关帐户的个人信息,您可以在此链接上查看示例 https://firebase.google.com/docs/database/rest/auth

如果您尝试检索某个项目的信息,则可以在firebase的项目控制台中找到此服务器密钥。

$server_key ='YOUR SERVER KEY';
$headers = array(
    'Content-Type:application/json',
  'Authorization:key='.$server_key
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);