尝试从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');
但得到回复未经授权的请求。
答案 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);