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

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

我正在尝试将本地主机应用程序连接到firebase。
firebase控制器工作正常,代码如下:

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Kreait\Firebase;
  5. use Kreait\Firebase\Factory;
  6. use Kreait\Firebase\ServiceAccount;
  7. use Kreait\Firebase\Database;
  8. class FirebaseController extends Controller
  9. {
  10. protected $database;
  11. public function __construct()
  12. {
  13. $this->database = app('firebase.database');
  14. }
  15. public function index()
  16. {
  17. $factory = (new Factory)
  18. ->withServiceAccount(__DIR__ . env('GOOGLE_APPLICATION_CREDENTIALS'))
  19. ->withDatabaseUri(env('DATABASE_URI'));
  20. $database = $factory->createDatabase();
  21. $newPost = $database
  22. ->getReference('blog/posts')
  23. ->push([
  24. 'title' => 'Post title',
  25. 'body' => 'This should probably be longer.'
  26. ]);
  27. echo "<pre>";
  28. print_r($newPost->getvalue());
  29. }
  30. }

但当我将.env中的环境变量更改为:

  1. FIREBASE_CREDENTIALS=FirebaseKey.json
  2. GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json

  1. FIREBASE_CREDENTIALS=/FirebaseKey.json
  2. GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json

只在 FIREBASE_CREDENTIALS 然后,页面突然出现裂缝。错误:

  1. Kreait\Firebase\Exception\InvalidArgumentException
  2. Invalid service account: /FirebaseKey.json can not be read:
  3. 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 文件如下所示:

  1. FIREBASE_CREDENTIALS=/FirebaseKey.json
  2. GOOGLE_APPLICATION_CREDENTIALS=/FirebaseKey.json

它将显示相同的错误。

  1. Kreait\Firebase\Exception\InvalidArgumentException
  2. Invalid service account: /FirebaseKey.json can not be read:
  3. SplFileObject::__construct(/FirebaseKey.json): Failed to open stream: No such file or directory

所以问题是为什么要使用 FIREBASE_CREDENTIALS 变量,则无法读取.json文件,但在使用 GOOGLE_APPLICATION_CREDENTIALS 一切都好吗?
这是目录的屏幕截图。

暂无答案!

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

相关问题