galihlprakoso / flysystem-firebase-storage
FlySystem Firebase Storage.
Fund package maintenance!
Buy Me A Coffee
v1.0.3
2024-11-06 07:08 UTC
Requires
- php: ^8.2
- kreait/firebase-php: ^7.15
- league/flysystem: ^3.28
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- pestphp/pest: ^3.1
- phpspec/prophecy-phpunit: ^2.2
- phpunit/phpunit: 11.3.*
README
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 ); });