laravel firebase cloud messaging notifications
// Install this package
composer require laravel-notification-channels/fcm:~2.0
// Create a notification for user and add the following code
class AccountActivated extends Notification
{
public function via($notifiable)
{
return [FcmChannel::class];
}
public function toFcm($notifiable)
{
return FcmMessage::create()
->setData(['data1' => 'value', 'data2' => 'value2'])
->setNotification(\NotificationChannels\Fcm\Resources\Notification::create()
->setTitle('Account Activated')
->setBody('Your account has been activated.')
->setImage('http://example.com/url-to-image-here.png'))
->setAndroid(
AndroidConfig::create()
->setFcmOptions(AndroidFcmOptions::create()->setAnalyticsLabel('analytics'))
->setNotification(AndroidNotification::create()->setColor('#0A0A0A'))
)->setApns(
ApnsConfig::create()
->setFcmOptions(ApnsFcmOptions::create()->setAnalyticsLabel('analytics_ios')));
}
}
// Add Notifiable trait to user class
// Add Method routeNotificationForFcm to return save token from firebase cloud messaging in database
class User extends Authenticatable
{
use Notifiable;
/**
* Specifies the user's FCM token
*
* @return string
*/
public function routeNotificationForFcm()
{
return $this->fcm_token;
}
}
// Fire the notification to test it
$user->notify(new AccountActivated);