web-dev-qa-db-fra.com

Connexion Firebase Firestore à laravel

J'ai installé laravel 5.8 et le projet Firebase avec firestore base de données.

 "name": "laravel/framework",
 "version": "v5.8.36",

Base de données Firestore connectée à l'application Android. L'application récupère les bonnes données de Firestore. Ensuite, je veux créer un panneau d'administration avec laravel pour Android app et je veux intégrer laravel avec cette base de données.Mais je ne peux pas le faire.

Ce que j'ai fait:

  1. installé php7.2

  2. installé laravel 5.8. *

  3. ajout de l'extension php gRPC *

  4. Ajout de gRPC en tant que dépendance Composer composer require "grpc/grpc:^v1.1.0" Dans le projet laravel

  5. installé composer require google/cloud-firestore

  6. Fichier json Firebase Admin SDK généré et enregistré dans le dossier de stockage de laravel

  7. Ajout de cette variable GOOGLE_APPLICATION_CREDENTIALS=/storage/files/progressive-yooung-team-firebase-adminsdk-ax7wi-d2a85ecabc.json (Fichier json qui a généré le SDK d'administration de Firebase) dans le fichier .env de laravel

  8. installé composer require kreait/firebase-php ^4.35

  9. Code 'VarController' du contrôleur créé:

    <?php
    
    namespace App\Http\Controllers;
    
    use Kreait\Firebase\Factory;
    
    
    class VarController extends Controller
    {
        public function index()
        {
            print_r("Output: 1");
            $factory = new Factory();
            print_r("Output: 2");
            $firestore = $factory->createFirestore();
            print_r("Output: 3");
            $database = $firestore->database();
    
            $userRef =  $database->collection('users');
            $snapshot = $userRef->document('Hus')->snapshot();
    
            if($snapshot->exists()) {
                printf('Document data:' . PHP_EOL);
                print_r($snapshot->data());
    
            }
            print_r("Output: 4");
        }
    }
    

Le problème est qu'il ne récupère pas les données du firestore document 'Hus' et ses données existent:

utilisateurs> Hus> nom: "Husniddin"

J'ai mis print_r("Output: 1"), Output: 2, etc ... afin de savoir où est le problème. À l'écran, je ne vois que: Sortie: 1 Sortie: 2.

3
Xose

N'oubliez pas non plus de les importer.

use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;
use \Kreait\Firebase\Database;
use Google\Cloud\Firestore\FirestoreClient;

Après cela, appelez la ServiceAccount() dans votre fonction.

$serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/Firebase.json');
        $firebase = (new Factory)
        ->withServiceAccount($serviceAccount);
$firestore = new FirestoreClient([
            'projectId' => 'Your project name',
        ]);
        $collectionReference = $firestore->collection('users');

$documentReference = $collectionReference->document('Search element from document');
        $snapshot = $documentReference->snapshot();
1
farooq