Firebase Cloud Messaging integration to Native FilamentPHP Notification Package
composer require tomatophp/filament-fcm
after install your package you need to update this keys in your .env
file
# Firebase ProjectFIREBASE_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 SDKFIREBASE_CREDENTIALS=Â # Firebase Cloud MessagingFIREBASE_VAPID=Â # Firebase Alert SoundFCM_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())
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);
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"
Checkout our Awesome TomatoPHP