当前位置: 首页 > 知识库问答 >
问题:

我在使用firebase php时出错,即cURL错误35

麻宾白
2023-03-14

我正在尝试将php与firebase结合使用

安装软件包“composer require kreait/firebase php^4.0”后

调整我的火力基地

它向我显示了错误:

致命错误:未捕获错误http\Exception\ConnectException:cURL错误35:OpenSSL SSL\u connect:SSL\u error\u连接到ff64t的系统调用。firebaseio。com:443(见https://curl.haxx.se/libcurl/c/libcurl-errors.html)在C:\xampp\htdocs\dashboard\webservice\php\u firebase\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory中。php:200堆栈跟踪:#0 C:\xampp\htdocs\dashboard\webservice\php\u firebase\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory。php(155):GuzzleHttp\Handler\CurlFactory::createRejection(对象(GuzzleHttp\Handler\EasyHandle),数组)#1c:\xampp\htdocs\dashboard\webservice\php\u firebase\vendor\GuzzleHttp\guzzle\src\Handler\CurlFactory。php(105):GuzzleHttp\Handler\CurlFactory::finishError(对象(GuzzleHttp\Handler\CurlHandler)、对象(GuzzleHttp\Handler\EasyHandle)、对象(GuzzleHttp\Handler\CurlFactory))#2 C:\xampp\htdocs\dashboard\webservice\php_firebase\vendor\GuzzleHttp\guzzle\src\Handler\CurlHandler。php(43):GuzzleHttp\Handler\CurlFactory::finish(对象(GuzzleHttp\Handler\CurlHandler),对象(第40行C:\xampp\htdocs\dashboard\webservice\php\u firebase\vendor\kreait\firebase php\src\firebase\Exception\ApiException.php中的Guz)

我的php代码非常简单:

 <?php
 require_once './vendor/autoload.php';
 use Kreait\Firebase\Factory;
     use Kreait\Firebase\ServiceAccount;
 $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/secret/clone-7ef2-642f.json');
 $firebase = (new Factory)
    ->withServiceAccount($serviceAccount)
    //->withDatabaseUri("https://ff64t.firebaseio.com")
    ->create();
    $database = $firebase->getDatabase();
    $ref = $database->getReference('users');
    $res = $ref->getChild('1z7ni171Hwgq8fdnandRNjfxBfw2')->getChild('name')->getValue();
    var_dump($res);

?>

因此,任何人都面临过类似的问题,以及如何解决这个问题

我试过很多解决办法,但都不管用。

我试图重新安装curl,并将其与我试图添加的系统变量一样放置

curl_setopt($easy->handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

为了使卷曲处理IPV4...它给了我一个新的错误,这是:

致命错误:未捕获的GuzzleHttp\Exception\RequestException:cURL错误0:cURL请求重试了3次,但未成功。失败的最可能原因是cURL无法倒回请求主体,随后的重试导致了相同的错误。打开“调试”选项以查看出了什么问题。看见https://bugs.php.net/bug.php?id=47204了解更多信息。(见https://curl.haxx.se/libcurl/c/libcurl-errors.html)在C:\xampp\htdocs\dashboard\webservice\firebase\u php\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory中。php:201堆栈跟踪:#0 C:\xampp\htdocs\dashboard\webservice\firebase\u php\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory。php(537):GuzzleHttp\Handler\CurlFactory::createRejection(对象(GuzzleHttp\Handler\EasyHandle),数组)#1c:\xampp\htdocs\dashboard\webservice\firebase\U php\vendor\GuzzleHttp\guzzle\src\Handler\CurlFactory。php(152):GuzzleHttp\Handler\CurlFactory::retryFailedRewind(对象(GuzzleHttp\Handler\CurlHandler)、对象(GuzzleHttp\Handler\EasyHandle)、数组)#2 C:\xam在C:\xampp\htdocs\dashboard\webservice\firebase\u php\vendor\kreait\firebase php\src\firebase\Exception\apieption中。php在线40

我还检查了phpinfo的curl支持和ssl

共有3个答案

柳俊彦
2023-03-14

在我的本地服务器上,我只将DNS更改为8.8。8.8解决它

薄鸿远
2023-03-14

因为您没有启用卷曲。cainfo

您可以添加cainfo。pem到php。伊尼(http://curl.haxx.se/ca/cacert.pem)

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo=/etc/ssl/certs/cacert.pem
邓丰
2023-03-14

根据curl(1)手册页面,错误代码35是SSL握手失败:

EXIT CODES
  ...
  35     SSL connect error. The SSL handshaking failed.

您可以尝试暂时禁用SSL证书验证,看看这是否解决了问题。

curl_setopt($handle, CURLOPT_VERIFYPEER, 0); // ***JUST A TEST! DO __NOT__ PUSH THIS TO PRODUCTION!***

如果这确实解决了问题,原因可能是两个最常见的SSL握手失败之一:

  1. 主机上缺少CA证书,这意味着cURL无法验证证书的真实性。
  2. 一个过期的证书正在由您连接的机器呈现。

如果这不能解决问题,原因可能是:

 类似资料:
  • 我想摆脱这个错误。我读到一个类似的问题,其中一个答案建议我可以使用以下命令禁用验证: 我的确切错误是: 在C:\ path \ guzzle \ src \ Handler \ cURL factory . PHP:187堆栈跟踪:# 0 C:\ path \ guzzle \ src \ Handler \ cURL factory . PHP:187堆栈跟踪:# 0 C:\ path \ gu

  • /*错误:在SMTPConnection中缺少“PLAIN”的凭据。_formatError(C:\User\dhruv singhal\Desktop\web_development_project\node_modules\nodemailer\lib\smtp-Connection\index.js:774: 19)在SMTPConnection.login(C:\User\dhruv si

  • 我正在尝试通过Tumblr PHP API验证用户身份。 我收到此错误 致命错误:未捕获异常“GuzzleHttp\exception\RequestException”,消息为“cURL error 60:SSL证书问题:无法获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)' 当访问建议的站点时,这是错误60的解释 C

  • 我正在使用自己的云存储Rados s3服务器,并尝试使用3.52 php AWS sdk创建一个bucket。以下是我在控制台中运行的代码: 我正在犯致命的错误 致命错误:未捕获异常'Aws\S3\Exception\S3Exception',消息'在超文本传输协议://pankaj上执行“CreateBucket”时出错。XXX. XX. XX. XXX/";AWS HTTP错误:cURL错误6

  • 我做了一个很简单的用户脚本: 当我浏览网页时,我可以在一次点击中“书签”任何图像 我的用户脚本 抓住img src 抓取网页的url 复制. jpg. png. gif到我的服务器 一切都很完美,但在某些情况下,脚本无法复制文件 实际上,该文件已创建,但不包含img数据,它仅包含错误网页的内容: “复制”代码(php): 也许网站阻止了这种“复制”脚本?谢谢

  • 我试图通过tls连接上传一个带有显式ftp的文件,使用PHP中的cURL。使用ftp服务器的身份验证成功,但当我尝试以被动模式上载文件时,收到以下错误:“连接到server.domain.nl:21的未知SSL协议错误”。 这种情况下的问题是什么?可能是被动上载的端口被我的提供商阻止了吗?我可以更改文件上载的端口吗? 我的代码是: