我正在尝试将本地主机应用程序连接到firebase。
firebase控制器工作正常,代码如下:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Kreait\Firebase;
use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;
use Kreait\Firebase\Database;
class FirebaseController extends Controller
{
protected $database;
public function __construct()
{
$this->database = app('firebase.database');
}
public function index()
{
$factory = (new Factory)
->withServiceAccount(__DIR__ . env('GOOGLE_APPLICATION_CREDENTIALS'))
->withDatabaseUri(env('DATABASE_URI'));
$database = $factory->createDatabase();
$newPost = $database
->getReference('blog/posts')
->push([
'title' => 'Post title',
'body' => 'This should probably be longer.'
]);
echo "<pre>";
print_r($newPost->getvalue());
}
}
但当我将.env中的环境变量更改为:
FIREBASE_CREDENTIALS=FirebaseKey.json
GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json
到
FIREBASE_CREDENTIALS=/FirebaseKey.json
GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json
只在 FIREBASE_CREDENTIALS
然后,页面突然出现裂缝。错误:
Kreait\Firebase\Exception\InvalidArgumentException
Invalid service account: /FirebaseKey.json can not be read:
SplFileObject::__construct(/FirebaseKey.json): Failed to open stream: No such file or directory
我实际上没有使用 FIREBASE_CREDENTIALS
变量,否则我不应该在 .env
文件
而且,当我更换 GOOGLE_APPLICATION_CREDENTIALS
具有 FIREBASE_CREDENTIALS
并更改 FIREBASE_CREDENTIALS
及 GOOGLE_APPLICATION_CREDENTIALS
在里面 .env
文件如下所示:
FIREBASE_CREDENTIALS=/FirebaseKey.json
GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json
它将显示相同的错误。
Kreait\Firebase\Exception\InvalidArgumentException
Invalid service account: /FirebaseKey.json can not be read:
SplFileObject::__construct(/FirebaseKey.json): Failed to open stream: No such file or directory
所以问题是为什么要使用 FIREBASE_CREDENTIALS
变量,则无法读取.json文件,但在使用 GOOGLE_APPLICATION_CREDENTIALS
一切都好吗?
这是目录的屏幕截图。
暂无答案!
目前还没有任何答案,快来回答吧!