tomatophp / filament-fcm
Firebase Cloud Messaging integration to Native FilamentPHP Notification Package
Fund package maintenance!
3x1io
Requires
- php: ^8.1|^8.2
- filament/filament: ^3.0.0
- filament/notifications: ^3.0.0
- mobiledetect/mobiledetectlib: ^4.8
- tomatophp/console-helpers: ^1.1
- tomatophp/fcm-notifications: ^1.0
README
Filament Firebase Integration
Firebase Cloud Messaging integration to Native FilamentPHP Notification Package
Installation
composer require tomatophp/filament-fcm
after install your package you need to update this keys in your .env
file
# Firebase Project FIREBASE_API_KEY= FIREBASE_AUTH_DOMAIN= FIREBASE_DATABASE_URL= FIREBASE_PROJECT_ID= FIREBASE_STORAGE_BUCKET= FIREBASE_MESSAGING_SENDER_ID= FIREBASE_APP_ID= FIREBASE_MEASUREMENT_ID= # Firebase Admin SDK FIREBASE_CREDENTIALS= # Firebase Cloud Messaging FIREBASE_VAPID= # Firebase Alert Sound FCM_ALERT_SOUND=
after update clear config
php artisan config:clear
then please run this command
php artisan filament-fcm:install
if you are not using this package as a plugin please register the plugin on /app/Providers/Filament/AdminPanelProvider.php
->plugin(\TomatoPHP\FilamentFcm\FilamentFcmPlugin::make() )
Usage
you can use the filament native notification and we add some macro for you
use Filament\Notifications\Notification; Notification::make('send') ->title('Test Notifications') ->body('This is a test notification') ->icon('heroicon-o-bell') ->color('success') ->actions([ \Filament\Notifications\Actions\Action::make('view') ->label('View') ->url('https://google.com') ->markAsRead() ]) ->sendToFCM( user: auth()->user(), data: [ 'key' => 'value' ], sendToDatabase: false, type: 'fcm-web' // or fcm-api )
or you can send it directly from the user model
$user->notifyFCMSDK( message: $this->message, type: $this->provider, title: $this->title, url: $this->url, image: $this->image, icon: $this->icon, data: [ 'url' => $this->url, 'id' => $this->model_id, 'actions' => [], 'body' => $this->message, 'color' => null, 'duration' => null, 'icon' => $this->icon, 'iconColor' => null, 'status' => null, 'title' => $this->title, 'view' => null, 'viewData' => null, 'data'=> $this->data ], sendToDatabase: false );
Publish Assets
you can publish config file by use this command
php artisan vendor:publish --tag="filament-fcm-config"
you can publish views file by use this command
php artisan vendor:publish --tag="filament-fcm-views"
you can publish migrations file by use this command
php artisan vendor:publish --tag="filament-fcm-migrations"
Other Filament Packages
Checkout our Awesome TomatoPHP