Console Helpers
Accounts Builder
Alerts Sender
Resource API Generator
Artisan Command Runner
Blog Template
Bookmarks Menu
File Browser
CMS Builder
Developer Gate
Discord Notifications Integration
Documents Editor
E-Commerce Builder
Firebase Notifications Integration
Helper Classes Generator
Icons Picker & Provider
Invoices Manager
GitHub Issues Manager
Language Switcher
Locations Seeder
User Logger
Media Manager
Menu Generator
Sticky Notes
Payment Manager
Plugins Manager & Generator
Point of Sale
Progressive Web App Integration
SEO Manager
Settings Hub
Simple Theme
Social Media Manager
Subscriptions
Tenancy Multi-database
Translation Component
Translations Manager
Google Translations
Translations GPT
Twilio Whatsapp Notifications Integrations
Types Manager
User Manager
Wallets Manager
Wallet Withdrawals
Laravel Package Generator
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