galihlprakoso/flysystem-firebase-storage

v1.0.1 2024-09-20 08:51 UTC

This package is auto-updated.

Last update: 2024-09-20 08:52:12 UTC


README

Latest Version on Packagist Total Downloads

This package contains a Flysystem adapter for Firebase Storage.

Installation

You can install the package via composer:

composer require galihlprakoso/flysystem-firebase-storage

Usage

PHP Usage

use galihlprakoso\Adapters\FirebaseStorageAdapter;
use Kreait\Firebase\Factory;

$factory = (new Factory())->withServiceAccount('<path to your service account json file>');
$storageClient = $factory->createStorage();

$adapter = new FirebaseStorageAdapter($storageClient, '<bucket name>');

Laravel Usage

Define the config in your filesystems.php file.

[
  'disks' => [
    //... another configuration    
    'firebase-storage' => [
        'driver' => 'firebase-storage',
        'service_account_json_name' => env('FIREBASE_STORAGE_SERVICE_ACCOUNT_JSON_NAME'),
        'bucket_name' => env('FIREBASE_STORAGE_BUCKET_NAME'),
    ],
  ]
]

Add this Storage extension in your Laravel's AppServiceProvider.php file, inside the boot() method:

Storage::extend('firebase-storage', function (Application $app, array $config) {
    $factory = (new Factory())->withServiceAccount(base_path('/' . $config['service_account_json_name']));
    $storageClient = $factory->createStorage();

    $adapter = new FirebaseStorageAdapter($storageClient, $config['bucket_name']);

    return new FilesystemAdapter(
        new Filesystem($adapter, $config),
        $adapter,
        $config
    );
});