How to get data from Firebase database using PHP?
Solution 1
$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
Solution 2
<?php
require __DIR__.'/../vendor/autoload.php';
use Kreait\Firebase\Factory;
$factory = (new Factory)
->withServiceAccount('secret/serviceaccount.json')
->withDatabaseUri('link_to_your_firebase_database');
$database = $factory->createDatabase();
$reference = $database->getReference('Services/');
$snapshot = $reference->getSnapshot();
$value = $snapshot->getValue();
Alexandre Krabbe
Former CSE student at University at Buffalo, NY and now graduated in CSE at Universidade Federal de Mato Grosso do Sul (UFMS), Brazil. I have experience with Java, C, HTML, CSS, Javascript, React.js, React Native, Agular, Node.js and Postgres among others.
Updated on June 14, 2022Comments
-
Alexandre Krabbe almost 2 years
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.'';
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.
-