我已经安装了firebase推荐的用于php自定义令牌的软件包,可在此处找到https://firebase.google.com/docs/auth/admin/create-custom-tokens,标题为使用第三方JWT库创建自定义令牌。
我已经安装了 php-jwt 。 然后,我创建了一个找到here的服务帐户,并在 / apis / credentials 中获得了类似的详细信息,如下所示。
$theCreatedToken
然后我使用顶部链接所示的格式生成令牌。
然而,当我把 $url = 'https://localhost-42d67.firebaseio.com/Devices.json?auth=' .$theCreatedToken;
$arr = array("success" =>array("iPhone"=>500));
$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);
放在这个卷曲中时......
?auth=' .$theCreatedToken;
我收到此错误 的 { “error”:“预计会出现ID令牌,但会获得自定义令牌。” }
如果我删除{{1}}它可以正常工作。 我究竟做错了什么?我对此进行了广泛的搜索,但没有答案。 我希望有人能够提供帮助。 最好
答案 0 :(得分:0)
这非常令人困惑,但我通过使用此库以及在Firebase设置中生成的服务帐户JSON来实现它。
https://github.com/kreait/firebase-php
我还编写了这个库,使其适用于Guzzle 5和PHP 5.6
https://github.com/luqmanrom/firebase-php
显然,它在Authorization标头中使用Bearer标记,而不是在查询字符串中传递auth标记。该令牌是从Google OAuth2服务器获取的。
希望它有所帮助