A simple package that help you send a Firebase notification with your Laravel applications
You can pull the package via composer :
$ composer require kawankoding/laravel-fcm
Next, You must register the service provider :
// config/app.php
'Providers' => [
// ...
Kawankoding\Fcm\FcmServiceProvider::class,
]
If you want to make use of the facade you must install it as well :
// config/app.php
'aliases' => [
// ...
'Fcm' => Kawankoding\Fcm\FcmFacade::class,
];
Next, You must publish the config file to define your FCM server key :
php artisan vendor:publish --provider="Kawankoding\Fcm\FcmServiceProvider"
This is the contents of the published file :
return [
/**
* Set your FCM Server Key
* Change to yours
*/
'server_key' => env('FCM_SERVER_KEY', ''),
];
Set your FCM Server Key in .env
file :
APP_NAME="Laravel"
# ...
FCM_SERVER_KEY=putYourKeyHere
If You want to send a FCM with just notification parameter, this is an example of usage sending a FCM with only data parameter :
fcm()
->to($recipients) // $recipients must an array
->priority('high')
->timeToLive(0)
->data([
'title' => 'Test FCM',
'body' => 'This is a test of FCM',
])
->send();
If You want to send a FCM to topic, use method toTopic($topic) instead to() :
fcm()
->toTopic($topic) // $topic must an string (topic name)
->priority('normal')
->timeToLive(0)
->notification([
'title' => 'Test FCM',
'body' => 'This is a test of FCM',
])
->send();
If You want to send a FCM with just notification parameter, this is an example of usage sending a FCM with only notification parameter :
fcm()
->to($recipients) // $recipients must an array
->priority('high')
->timeToLive(0)
->notification([
'title' => 'Test FCM',
'body' => 'This is a test of FCM',
])
->send();
If You want to send a FCM with both data & notification parameter, this is an example of usage sending a FCM with both data & notification parameter :
fcm()
->to($recipients) // $recipients must an array
->priority('normal')
->timeToLive(0)
->data([
'title' => 'Test FCM',
'body' => 'This is a test of FCM',
])
->notification([
'title' => 'Test FCM',
'body' => 'This is a test of FCM',
])
->send();
This packages uses a singleton pattern for the Fcm
facade and fcm()
helper.
If you want to send different payloads to Firebase in the same request you have to use use the Kawankoding\Fcm\Fcm
class directly:
use Kawankoding\Fcm\Fcm;
$fcm1 = new Fcm;
$fcm1->to($recipients)
->data([
'title' => 'Test FCM 1',
'body' => 'This is a test of FCM 1',
])
->send();
$fcm2 = new Fcm;
$fcm2->to($recipients)
->notification([
'title' => 'Test FCM 2',
'body' => 'This is a test of FCM 2',
])
->send();