致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:`403 Forbidden` 响应:

时间:2021-01-29 11:08:47

标签: php firebase firebase-authentication

为什么我在使用 firebase php^5.14.1 时会收到此错误

<块引用>

致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:POST https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser 导致 403 Forbidden 响应:(截断...)在 C:\xampp\htdocs\mcns\admin\includes \vendor\guzzlehttp\guzzle\src\Exception\RequestException.php:113 堆栈跟踪:#0 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp\guzzle\src\Middleware.php(69): GuzzleHttp \Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response), NULL, Array, NULL) #1 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp \promises\src\Promise.php(204): GuzzleHttp\Middleware::GuzzleHttp{closure}(Object(GuzzleHttp\Psr7\Response)) #2 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp\ promises\src\Promise.php(153): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), NULL) #3 C:\xampp\htdocs\mcns\admin\includes\vendor\ guzzlehttp\promises\src\TaskQueue.php(48): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise{closure}() #4 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzleh ttp\promises\src\Promise.php(248): GuzzleHttp\Promise\TaskQueue->run(true) #5 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp\promises\src\Promise.php (224): GuzzleHttp\Promise\Promise->invokeWaitFn() #6 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp\promises\src\Promise.php(269): GuzzleHttp\Promise\Promise- >waitIfPending() #7 C:\xampp\htdocs\mcns\admin\includes\vendor\guzzlehttp\promises\src\Promise.php(226): GuzzleHttp\Promise\Promise->invokeWaitList() #8 C:\xampp \htdocs\mcns\admin\includes\vendor\guzzlehttp\promises\src\Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending() #9 C:\xampp\htdocs\mcns\admin\includes\vendor \guzzlehttp\guzzle\src\Client.php(187): GuzzleHttp\Promise\Promise->wait() #10 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase \Http\WrappedGuzzleClient.php(50): GuzzleHttp\Client->request('POST', 'signupNewUser', Array) #11 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\ src\Firebase\Auth\ApiClient.php(219): Kreait\Firebase\Auth\ApiClient->request('POST', 'signupNewUser', Array) #12 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\Auth\ ApiClient.php(51): Kreait\Firebase\Auth\ApiClient->requestApi('signupNewUser', Array) #13 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase \Auth.php(183): Kreait\Firebase\Auth\ApiClient->createUser(Object(Kreait\Firebase\Request\CreateUser)) #14 C:\xampp\htdocs\mcns\admin\accountmukera.php(40): Kreait\Firebase\Auth->createUser(Array) #15 {main} Next Kreait\Firebase\Exception\Auth\AuthError:请求缺少有效的 API 密钥。在 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\Exception\AuthApiExceptionConverter.php:134 堆栈跟踪:#0 C:\xampp\htdocs\mcns\admin\includes \vendor\kreait\firebase-php\src\Firebase\Exception\AuthApiExceptionConverter.php(50): Kreait\Firebase\Exception\AuthApiExceptionConverter->convertGuzzleRequestException(Object(GuzzleHttp\Exception\ClientException)) #1 C:\xampp\htdocs \mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\Auth\ApiClient.php(221): Kreait\Firebase\Exception\AuthApiExceptionConverter->convertException(Object(GuzzleHttp\Exception\ClientException)) #2 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\Auth\ApiClient.php(51): Kreait\Firebase\Auth\ApiClient->requestApi('signupNewUser', Array ) #3 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\Auth.php(183): Kreait\Firebase\Auth\ApiClient->createUser(Object(Kreait\ Firebase\Request\CreateUser)) #4 C:\xampp\htdocs\mcns\admin\accountmuk era.php(40): Kreait\Firebase\Auth->createUser(Array) #5 {main} 扔在 C:\xampp\htdocs\mcns\admin\includes\vendor\kreait\firebase-php\src\Firebase\ Exception\AuthApiExceptionConverter.php 第 134 行

//the code is 
<?php 
session_start();
//error_reporting(0);


require_once'./includes/vendor/autoload.php';
use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;
//use Kreait\Firebase\Auth;


 $factory = (new Factory)->withServiceAccount(__DIR__.'/includes/secret/mcnsweb-ea923-firebase-adminsdk-40vau-468af8bd71.json');

 $factory = (new Factory())
 ->withDatabaseUri('https://mcnsweb-ea923-default-rtdb.firebaseio.com/');
 $database = $factory->createDatabase();
 
//include('includes/topheader.php');
//include('includes/leftsidebar.php');
//$reference = $database->getReference('users');
//$value = $reference->getValue();

//if($value>0){ 
    $auth = $factory->createAuth();

$userProperties = [
    'email' => 'sosi@gmail.com',
    'emailVerified' => false,
    'phoneNumber' => '+15555550100',
    'password' =>  "123456",
    'firstname' => "meron",
    'lastname' => "tesfaye",
  // 'displayName' => 'John Doe',
   // 'usertype'=> "department head",
   // 'imageUrl'=> upload(),
    'photoUrl' => 'http://www.example.com/12345678/photo.png',
    'disabled' => false,
];
$createdUser = $auth->createUser($userProperties);
// $database->getReference('users')->set('useraccount');
// $pushdata= $database->getReference('useraccount')->push($userProperties);
if($createdUser){
    echo "seccessful";
}


    ?>

1 个答案:

答案 0 :(得分:0)

简而言之,您试图在未事先登录的情况下访问数据库/创建用户。

这一行正在创建一个使用给定服务帐户并将其保存为 $factory 的工厂。

$factory = (new Factory)->withServiceAccount(__DIR__.'/includes/secret/mcnsweb-ea923-firebase-adminsdk-40vau-468af8bd71.json');

这一行正在创建一个不同的工厂并将其保存为 $factory

$factory = (new Factory())
 ->withDatabaseUri('https://mcnsweb-ea923-default-rtdb.firebaseio.com/');

你需要将这两个语句组合成:

$factory = (new Factory())
  ->withServiceAccount(__DIR__.'/includes/secret/mcnsweb-ea923-firebase-adminsdk-40vau-468af8bd71.json');
  ->withDatabaseUri('https://mcnsweb-ea923-default-rtdb.firebaseio.com/');