Skip to content

galihlprakoso/flysystem-firebase-storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flysystem adapter for the Firebase Storage API

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
    );
});

Support My Work

About

This package contains a Flysystem adapter for Firebase Storage.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages