找不到类'Kreait \ Firebase \ ServiceAccount'-Laravel 5.4.36

时间:2020-02-29 17:47:03

标签: php laravel firebase

我正在将Laravel项目与Firebase集成在一起,但是在进行测试时出现标题错误。

我已经使用以下命令安装了Firebase:

composer require kreait/firebase-php ^4.35

我的composer.json文件具有以下内容:

"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=7.0",
    "google/recaptcha": "~1.1",
    "kreait/firebase-php": "4.35",
    "laravel/framework": "5.4.*",
    "laravel/tinker": "~1.0",
    "laravelcollective/html": "^5.4.0",
    "pear/mail": "^1.4"
},
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.7"
},

我的composer.lock文件具有以下内容:

"platform": 
{
        "php": ">=7.0"
},

其他数据: Laravel 5.4.36版本, PHP版本:7.0

我已经尝试删除缓存,运行composer updatecomposer install

谢谢。

1 个答案:

答案 0 :(得分:0)

您的composer.json显示的是4.35.0而不是^4.35(这不是问题的根源,但是您错过了新版本(我们在发布时为4.40.1)此评论:)。

您没有显示任何实际代码,但是原因可能是以下之一:

该SDK尚未真正安装:检查composer show的输出以查看它是否真正存在以及在哪个版本中。

您从另一个命名空间中使用了Kreait\Firebase\ServiceAccount。如果在代码中使用完整的命名空间,则必须在其前面加上根命名空间,即\Kreait\Firebase\ServiceAccount(请注意前面的反斜杠)。更好的做法是:使用文件顶部的use Kreait\Firebase\ServiceAccount导入名称空间,以便您可以直接使用ServiceAccount,而无需名称空间。

似乎您想从Laravel应用程序内部使用SDK-在这种情况下,我建议使用https://github.com/kreait/laravel-firebase-这样,您根本不必关心类,可以使用`app (“ firebase”。)

我希望这些建议之一对我有帮助