php—环境变量在laravel的firebasecontroller中工作异常

dgsult0t  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(225)

我正在尝试将本地主机应用程序连接到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_CREDENTIALSGOOGLE_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 一切都好吗?
这是目录的屏幕截图。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题