1. Go to this page and download the library: Download sv1ft/laravel-fcm library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sv1ft / laravel-fcm example snippets
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Williamcruzme\Fcm\HasDevices;
class User extends Authenticatable
{
use Notifiable, HasDevices;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['fcm'];
}
/**
* Get the Firebase Message representation of the notification.
*
* @param mixed $notifiable
* @return \Williamcruzme\Fcm\Messages\FcmMessage
*/
public function toFcm($notifiable)
{
return (new FcmMessage)
->notification([
'title' => 'Happy Code!',
'body' => 'This is a test',
]);
}
use App\Notifications\InvoicePaid;
$user->notify(new InvoicePaid($invoice));
use App\Notifications\InvoicePaid;
use Illuminate\Support\Facades\Notification;
Notification::send($users, new InvoicePaid($invoice));
/**
* Get the Firebase Message representation of the notification.
*
* @param mixed $notifiable
* @return \Williamcruzme\Fcm\Messages\FcmMessage
*/
public function toFcm($notifiable)
{
return (new FcmMessage)
->notification([
'title' => 'Happy Code!',
'body' => 'This is a test',
])
->data([
'type' => 'banner',
'link' => 'https://github.com/',
]);
}
/**
* Get the Firebase Message representation of the notification.
*
* @param mixed $notifiable
* @return \Williamcruzme\Fcm\Messages\FcmMessage
*/
public function toFcm($notifiable)
{
return (new FcmMessage)
->condition("'stock-GOOG' in topics || 'industry-tech' in topics")
->notification([
'title' => 'Happy Code!',
'body' => 'This is a test',
]);
}
/**
* Get the Firebase Message representation of the notification.
*
* @param mixed $notifiable
* @return \Williamcruzme\Fcm\Messages\FcmMessage
*/
public function toFcm($notifiable)
{
return (new FcmMessage)
->priority('high')
->notification([
'title' => 'Happy Code!',
'body' => 'This is a test',
]);
}
/**
* Get the Firebase Message representation of the notification.
*
* @param mixed $notifiable
* @return \Williamcruzme\Fcm\Messages\FcmMessage
*/
public function toFcm($notifiable)
{
return (new FcmMessage)
->notification([
'title' => 'Happy Code!',
'body' => 'This is a test',
])
->payload([
'android_channel_id' => '500'
]);
}
Device::routes('App\Http\Controllers');
namespace App\Http\Controllers;
use Williamcruzme\Fcm\Traits\ManageDevices;
class DeviceController extends Controller
{
use ManageDevices;
/**
* Get the validation rules that apply to the create a device.
*
* @return array
*/
protected function createRules()
{
return [
'token' => ['
* @return array
*/
protected function validationErrorMessages()
{
return [];
}
}
namespace App\Http\Controllers;
use Williamcruzme\Fcm\Traits\ManageDevices;
class DeviceController extends Controller
{
use ManageDevices;
/**
* Get the response for a successful storing device.
*
* @param Williamcruzme\Fcm\Device $model
* @return \Illuminate\Http\JsonResponse
*/
protected function sendResponse($model)
{
return response()->json($model);
}
/**
* Get the response for a successful deleting device.
*
* @param Williamcruzme\Fcm\Device $model
* @return \Illuminate\Http\JsonResponse
*/
protected function sendDestroyResponse($model)
{
return response()->json('', 204);
}
}
namespace App\Http\Controllers;
use Williamcruzme\Fcm\Traits\ManageDevices;
class DeviceController extends Controller
{
use ManageDevices;
/**
* Get the guard to be used during device management.
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard()
{
return auth('admin')->guard();
}
}
bash
php artisan migrate
bash
php artisan vendor:publish --tag=migrations
bash
php artisan make:notification InvoicePaid
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.