致命错误:未捕获错误:调用未定义的方法 Kreait\Firebase\Factory::getDatabase()

ror*_*oor 2 php composer-php firebase

我正在尝试将 php 与 firebase 一起使用,但是当我尝试运行代码时出现此错误。

致命错误:未捕获错误:在第 10 行调用 C:\xampp\htdocs\table\includes\db.php 中未定义的方法 Kreait\Firebase\Factory::getDatabase()

db.php 文件:

<?php

require __DIR__.'/vendor/autoload.php';

use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;

$firebase = (new Factory())->withServiceAccount(__DIR__.'/bib-bayitback-firebase-adminsdk-lkch9-44e22401ec.json');

$database = $firebase->getDatabase();



?>
Run Code Online (Sandbox Code Playgroud)

我的composer.json 文件:

{
    "require": {
        "kreait/firebase-php": "5.0"
    }
}

Run Code Online (Sandbox Code Playgroud)

我该如何解决它?

jer*_*mez 5

您已安装适用于 PHP 的 Firebase Admin SDK v5.0.0 ,但您遵循的教程适用于 4.x 版本。

这是一个经常发生的问题,因此在 SDK 文档的“故障排除”部分中有专门的部分

对于 v5.x,初始化 Firebase 组件的正确方法是:

$factory = (new Factory())->withServiceAccount(__DIR__.'/bib-bayitback-firebase-adminsdk-lkch9-44e22401ec.json');

$database = $factory->createDatabase();
Run Code Online (Sandbox Code Playgroud)

作为旁注:

{
    "require": {
        "kreait/firebase-php": "5.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

将安装版本 5.0 和 5.0。仅(当前版本为5.13)。您将永远不会收到该库的更新版本,因为您将版本限制固定为5.0.

如果您想确保收到 SDK 的新功能和错误修复,请^在版本号前面添加插入符号 ( ):

{
    "require": {
        "kreait/firebase-php": "^5.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

这将使您的项目能够接收最新的 5.x 版本的 SDK。