7

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.

3
  • You havent followed the documentation well...,create a child then post.., Commented Aug 6, 2017 at 5:42
  • Did you manage to upload the composer to the server...., Commented Aug 6, 2017 at 5:43
  • Try wrapping the code in your index.php with a try { ... } catch (\Throwable $e) { echo $e->getMessage(); } block - the blank page is probably the result of an error with PHP's error reporting being disabled. Commented Jan 3, 2018 at 14:43

2 Answers 2

4
$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

Sign up to request clarification or add additional context in comments.

1 Comment

please add which composer package version youve used
1
<?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();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.