Как связать laravel с пакетом firebase php? - PullRequest
1 голос
/ 16 октября 2019

Я новичок здесь и новичок в firebase. Я хочу внедрить FireBase в свой проект Laravel. Поэтому я использовал пакет kreait/firebase-php. Но я не знаю, как его использовать. У меня есть страница контроллера firebase и файл firebase.json.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;
use \Kreait\Firebase\Database;
class FirebaseController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/Firebase.json');
        $firebase = (new Factory)
        ->withServiceAccount($serviceAccount);
        ->create();
        $database = $firebase->getDatabase();

        $newPost = $database
        ->getReference('users')
        ->push([
        'title' => 'Testing data to add' ,
        'category' => 'from Laravel'
        ]);
        echo "<h3> Data inserted</h3>";
    }

}

Но я получаю эту ошибку.

Kreait \ Firebase \ Factory :: create устарела. Вместо этого используйте специфичные для компонента методы create * ().

Почему?

Ответы [ 2 ]

3 голосов
/ 16 октября 2019

Вы должны использовать метод createDatabase вместо метода create, который устарел в v4.33. Измените файл контроллера следующим образом:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;
use \Kreait\Firebase\Database;
class FirebaseController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/Firebase.json');
        $firebase = (new Factory)
        ->withServiceAccount($serviceAccount);

        $database = $firebase->createDatabase();

        $newPost = $database
        ->getReference('users')
        ->push([
        'title' => 'Testing data to add' ,
        'category' => 'from Laravel'
        ]);
        echo "<h3> Data inserted</h3>";
    }

}
2 голосов
/ 16 октября 2019

Использование класса Kreait\Firebase устарело. Пожалуйста, создайте нужные вам сервисы напрямую:

# recommended
$factory = (new Firebase\Factory())
// ->withServiceAccount(...)
// ->...
// no call to ->create()
;

$auth = $factory->createAuth();
$database = $factory->createDatabase();
$messaging = $factory->createMessaging();
$remoteConfig = $factory->createRemoteConfig();
$storage = $factory->createStorage();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...