plokko/firebase-php

Firebase API php implementation

0.3.0 2023-11-26 12:31 UTC

This package is auto-updated.

Last update: 2024-10-26 15:05:00 UTC


README

Php implementation of Firebase API.

Why

This package is built to be simple, scalable and configurable to allow easy integration in other packages or frameworks (ex: laravel-firebase ).

This package uses google/auth to generate OAuth2.0 tokens from the service account and guzzlehttp/guzzle as http library.

Install

Install it with composer via

composer require plokko/firebase-php

Usage

All the calls on the API are made using a Firebase OAuth2.0 token, this token is generated using your ServiceAccount informations.

Service Account

To use the API you need to authenticate the requests with your service account: this is done by the ServiceAccount class that uses your Firebase ServiceAccount json credential file. You can download your service account json file from the Firebase console in settings > service accounts, keep in mind to store this file in a secure non-public location.

use Plokko\Firebase\ServiceAccount;

//Use one of those methods:
$sa = new ServiceAccount('/path/to/your/serviceaccount/file.json');
$sa = new ServiceAccount('{"type":"service_account",..............}');
$sa = new ServiceAccount(['type'=>'service_account',/*...*/]);

Accepted methods for the constructor are:

  • string: ServiceAccount file content (json string)
  • string: path to the serviceAccount json file
  • array: php-translated array of the service account content

You can also add a token cache handler via the setCacheHandler method that accepts an implementation of CacheItemPoolInterface to allow custom cache integrations.

see google/auth MemoryCacheItemPool for an example implementation:

$handler = new Google\Auth\Cache\MemoryCacheItemPool\MemoryCacheItemPool();
$sa->setCacheHandler($handler);

FCM

This package implements FCM Http v1 Api

see FCM docs

Real time database

This package includes the Firebase Real time database API integration

see Real time database docs