Надсилайте сповіщення в Laravel за допомогою Firebase Cloud Messaging та Notifier

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вам цікаво дізнатися, як легко інтегрувати FCM у ваш Laravel-проєкт? У статті розглянуто, як використовувати пакет Notifire для надсилання сповіщень з Firebase, а також всі його корисні можливості!

Firebase Cloud Messaging (FCM) — це рішення для обміну повідомленнями, яке працює на різних платформах і дозволяє надійно надсилати повідомлення. Якщо ви плануєте використовувати FCM з Laravel, Абделразек Канділ створив пакет Notifire, який підтримує систему сповіщень Laravel для надсилання FCM-увідомлень.

# Особливості

Примітка: Переконайтеся, що у вас вже є обліковий запис Firebase і налаштований проект, оскільки вам знадобиться ID проекту Firebase з консолі Firebase, а також облікові дані сервісного облікового запису Firebase, які повинні зберігатися в файлі /storage/firebase.json.

Ви можете встановити цей пакет за допомогою Composer, опублікувати файли пакету та запустити міграції:

composer require devkandil/notifire
php artisan vendor:publish --provider="DevKandil\NotiFire\FcmServiceProvider"
php artisan migrate

Крім того, вам потрібно внести деякі зміни до моделі User, зокрема додати поле fcm_token до масиву $fillable вашої моделі.

Пакет також містить API-ендпоінт /fcm/token у вбудованому класі FcmController. Цей ендпоінт автоматично реєструється з Middleware автентифікації Laravel Sanctum, тому переконайтеся, що Sanctum вже встановлено, і ваш користувач автентифікований перед виконанням запиту до цього ендпоінту.

Ви також можете додати трейти HasFcm до вашої моделі User для простого управління FCM-токенами. Наприклад:

$user->getFcmToken();
$user->updateFcmToken($token);

# Приклад

use DevKandil\NotiFire\Facades\Fcm;
 
$user = Auth::user();
$fcmToken = $user->getFcmToken();
 
$success = Fcm::withTitle('Laracon US Recap')
    ->withBody('Перегляньте все, що було оголошено на Laracon US')
    ->withImage('https://example.com/image.jpg')
    ->withIcon("notification_icon")
    ->withColor("#FF5733")
    ->withSound('default')
    ->sendNotification($fcmToken);

Використовуючи систему сповіщень Laravel, ви можете створити новий клас Notification, наприклад:

namespace App\Notifications;
 
use DevKandil\NotiFire\Enums\MessagePriority;
use DevKandil\NotiFire\FcmMessage;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
 
class NewAnnouncement extends Notification
{
    use Queueable;
 
    public function via(object $notifiable): array
    {
        return ['fcm'];
    }
 
    /**
     * Отримати FCM-репрезентацію сповіщення.
     */
    public function toFcm(object $notifiable): FcmMessage
    {
        return FcmMessage::create('Laravel AI Boost', 'Laravel AI Boost незабаром з’явиться!')
            ->image('https://example.com/image.jpg')
            ->sound('default')
            ->clickAction('OPEN_ACTIVITY')
            ->icon('notification_icon')
            ->color('#FF5733')
            ->priority(MessagePriority::HIGH)
            ->data([
                'timestamp' => now()->toIso8601String(),
            ]);
    }
}

А потім надішліть сповіщення за допомогою:

use \App\Notifications;
 
$user->notify(new NewAnnouncement());

Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.

Популярні

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше