Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get data from Firebase database using PHP?

Recently, I created a Firebase project composed by two parts, one is an iOS app and the other is a website. Everything was fine until I discovered that I needed to use PHP to load content dynamically into the page instead of just JavaScript.

On further research I found out that I could not retrieve data from the Firebase database using JavaScript and then use this data on a PHP script.

Since there is no documentation for PHP on Firebase docs, I started looking for some answer and I found out a project on github called Firebase Admin SDK for PHP. So here I am after many frustrated tries to retrieve data from Firebase using PHP asking for help. Here is what I did:

  • Installed Composer with:

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"

  • CD into projects folder and run:

    php composer.phar require kreait/firebase-php

  • Create a new index.php on the project to test

  • Add to the top of index.php:

    require DIR.'/vendor/autoload.php';

  • Inside Fibase project overview, create a service account and save the FriendlyChat-1f226af19083.json to the project folder.

  • Add to index.php:

    $firebase = (new \Firebase\Factory())
    ->withCredentials(DIR.'/FriendlyChat-1f226af19083.json')
    ->withDatabaseUri('https://friendlychat-82d4c.firebaseio.com/')
    ->create();

    $database = $firebase->getDatabase();
    $reference = $database->getReference('/k1');
    $snapshot = $reference->getSnapshot();
    $k1 = $snapshot->getValue();
    echo $k1.'';

Here is the project database: enter image description here

What I hoped was to see "teste" printed in the page. But the page simply renders blank, can anyone help me on this matter? I'm not sure where to go next, as soon as I'm able to get and set data from the database I can actually start developing the new website in php.

like image 831
Alexandre Krabbe Avatar asked Oct 17 '22 14:10

Alexandre Krabbe


1 Answers

$acc = ServiceAccount::fromJsonFile(__DIR__.'/key/xxxxxx.json');
            $firebase = (new Factory)->withServiceAccount($acc)->create();
            $this->database = $firebase->getDatabase();
$reference = $database->getReference('/K1');
$snapshot = $reference->getSnapshot()->getValue();

The correct way to connect with you Firebase DB

like image 113
Rxhack com Avatar answered Oct 21 '22 06:10

Rxhack com