【问题标题】:Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: `403 Forbidden` response:致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:`403 Forbidden` 响应:
【发布时间】:2021-01-29 11:08:47
【问题描述】:

为什么我在使用 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\ve ndor\guzzlehttp\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\ApiClien t.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\ 中抛出第 134 行的 Exception\AuthApiExceptionConverter.php

//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";
}


    ?>

【问题讨论】:

  • 格式化您的错误。要输入错误,请在代码前后使用三个反引号 (`) 字符。

标签: php firebase firebase-authentication


【解决方案1】:

简而言之,您正在尝试访问数据库/创建用户而无需事先登录。

这一行正在创建一个使用给定服务帐户的工厂并将其保存为$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/');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2021-10-08
    • 1970-01-01
    • 2015-11-28
    • 2017-07-27
    相关资源
    最近更新 更多