Skip to content

nean/laravel-fcm-notification-channel

 
 

Repository files navigation

FCM notification channel for Laravel 5.8+

This package makes it easy to send notifications using Firebase Cloud Messaging (FCM) with Laravel 5.8 and above. This package is based on brozot/laravel-fcm, so please read that documentation for more information.

Contents

Installation

You can install this package via composer:

composer require nean/laravel-fcm-notification-channel:^2

Usage

Now you can use the channel in your via() method inside the notification:

use NotificationChannels\FCM\FCMMessage;
use Illuminate\Notifications\Notification;

class ExampleNotification extends Notification
{
    public function via($notifiable)
    {
        return ['fcm'];
    }

    public function toFCM($notifiable)
    {
        return (new FCMMessage())
            ->notification([
                'title' => 'Notification title',
                'body' => 'Notification body',
            ]);
    }
}

Available message types:

  • FCMMessage: Send notifications to device(s).
  • FCMMessageTopic: Send notifications to topic(s).
  • FCMMessageGroup: Send notifications to group(s).

In order for your notice to know who to send messages, you must add routeNotificationForFCM method to your notification model.

Available message methods

  • data(): Notification data. array | LaravelFCM\Message\PayloadData | LaravelFCM\Message\PayloadDataBuilder
  • options(): Notification options. array | LaravelFCM\Message\Options | LaravelFCM\Message\OptionsBuilder
  • notification(): Notification content. array | LaravelFCM\Message\PayloadNotification | LaravelFCM\Message\PayloadNotificationBuilder

Proxy methods. See brozot/laravel-fcm for more information about this methods.

  • setDryRun
  • setPriority
  • setTimeToLive
  • setCollapseKey
  • setDelayWhileIdle
  • setMutableContent
  • setContentAvailable
  • setRestrictedPackageName
  • isDryRun
  • getPriority
  • getTimeToLive
  • getCollapseKey
  • isDelayWhileIdle
  • isMutableContent
  • isContentAvailable
  • getRestrictedPackageName
  • setTag
  • setBody
  • setIcon
  • setTitle
  • setSound
  • setBadge
  • setColor
  • setChannelId
  • setClickAction
  • setBodyLocationKey
  • setBodyLocationArgs
  • setTitleLocationKey
  • setTitleLocationArgs
  • getTag
  • getBody
  • getIcon
  • getTitle
  • getSound
  • getBadge
  • getColor
  • getChannelId
  • getClickAction
  • getBodyLocationKey
  • getBodyLocationArgs
  • getTitleLocationKey
  • getTitleLocationArgs

Testing

$ composer test

Credits

Support

Having trouble? Open an issue!

License

The MIT License (MIT). Please see License File for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 93.3%
  • Roff 6.7%