Notifire + FCM مع Laravel

سبتمبر 13, 2025

لو محتاج تبعت إشعارات Push من تطبيق Laravel سواء للموبايل أو للويب، فالحل الأسرع والأبسط هو إنك تستخدم Notifire اللي بيربط Laravel مباشرةً مع Firebase Cloud Messaging (FCM). الميزة الأساسية إنك مش محتاج تخرج بره نظام الـ Notifications الأصلي في لارافيل، وبتشتغل بكل الأدوات اللي إنت متعود عليها.

إيه هي Notifire وليه نستخدمها؟

Notifire عبارة عن باكدج مخصص للربط مع خدمة FCM. تقدر تبعت رسائل تنبيه بمحتوى بسيط أو متقدّم (عنوان، نص، صورة، أيقونة، صوت، أكشن…). كمان بيوفرلك إدارة للتوكنز الخاصة بالأجهزة المختلفة، وبيسهل موضوع تسجيلها وتخزينها في قاعدة البيانات.

المتطلبات الأساسية

قبل ما تبدأ، لازم يكون عندك Project على Firebase مفعّل، وتحمّل ملف Service Account وتخزّنه في مكان آمن زي storage/firebase.json. كمان محتاج Laravel Sanctum لأن عملية تسجيل التوكنات مربوطة بيه.

خطوات التثبيت

التثبيت بيتم في 3 أوامر رئيسية:

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

إدارة التوكنات

الحزمة بتديك Trait تقدر تضيفه على موديل المستخدم علشان تدير الـ FCM Tokens. ودي نقطة مهمة جدًا لأن كل إشعار محتاج يروح لتوكن جهاز معين. الأفضل كمان تعمل جدول للأجهزة لو عندك يوزر بيدخل من أكتر من مكان.

تسجيل التوكن من الفرونت

Notifire بيضيفلك Endpoint جاهز اسمه POST /fcm/token، ومربوط بـ Sanctum بشكل مباشر. أي جهاز (ويب أو موبايل) هيولّد توكن من Firebase، هيبعت التوكن للسيرفر عندك علشان يتخزن ويرتبط بالمستخدم.

إرسال الإشعارات

عندك طريقتين: يا إمّا تستخدم الـ Facade مباشرة، أو تشتغل بالطريقة الرسمية بتاعة Laravel Notifications. في الحالتين بتقدر تضيف عنوان، نص، صورة، بيانات إضافية (data) وكمان تحدد الأولوية.

$ok = Fcm::withTitle('تنبيه جديد')
    ->withBody('فيه تحديث في حسابك')
    ->sendNotification($token);

أفضل الممارسات

- شغّل الإرسال دايمًا عن طريق queues علشان متبطّأش التطبيق.
- خزّن بيانات Firebase في مكان آمن بعيد عن Git.
- اعمل Rotation للتوكنات البايظة أو بعد الـ Logout.
- خطط لاستخدام Topics لو عندك Segments كبيرة من المستخدمين.

أخطاء شائعة

- لو الإشعارات مش بتوصل: راجع صلاحيات Service Worker على الويب أو جرّب إعادة تسجيل التوكن.
- لو فيه خطأ 401/403 على /fcm/token: يبقى غالبًا مشكلة في Sanctum أو التوكن ناقص.
- بطء في الإرسال: لازم تستخدم Workers وتفصل عملية الإرسال عن الـ UI.

الخلاصة

Notifire بتخلّي تكامل Laravel مع FCM عملية منظمة وبسيطة. بمجرد ما تظبط التوكنات وتربطها مع المستخدمين، وتستخدم الـQueues بشكل صح، هتقدر تبني نظام إشعارات قوي وموثوق للتطبيق بتاعك سواء على الموبايل أو الويب.

المدونة

حقق أداءً أعلى لتقارير البيانات الضخمة باستخدام نظام (Queues)

يوليو 07, 2025

إزاي نعمل كاش لتقارير بفترة زمنية ثابتة إزاي نولّد تقارير ضخمة في الخلفية باستخدام الـ Job Queues 1. 🧠 كاش للتقارير بفترة زمنية ثابتة لو ع...

React Native 0.80 وExecuTorch: بداية قوية للذكاء الاصطناعي المحلي في تطبيقات الموبايل

يوليو 28, 2025

🚀 الجديد في React Native 0.80 بالتفصيل الإصدار React Native 0.80 يعتبر نقطة تحول حقيقية في عالم تطوير تطبيقات الموبايل باستخدام React Native. التح...

لارافيل 12: كل جديد من 12.0 لـ 12.19 – دليل شامل

يوليو 20, 2025

🔧 1. لارافيل 12.0 – ستارتر كيتس وتعديلات أساسية إصدار 12.0 جاب Starter Kits جاهزة للـ React، Vue، Livewire، وكمان دمج مع WorkOS AuthKit،...

وقّف نسخ الكود! اتعلم تستخدم Traits في Laravel صح

يوليو 01, 2025

🚫 وقّف نسخ الكود! لو عندك نفس المنطق في كذا Model أو Controller زي Slug أو Logging، Traits في Laravel هتوفر عليك تعب الكتابة والتكرار. 1. إيه هو...

Laravel 12.21.0 – تحديث ذكي لتسهيل الاستعلامات والتحقق الصارم للبيانات

أغسطس 03, 2025

أصدرت Laravel النسخة 12.21.0 بمزايا برمجية هامة تساهم في كتابة كود أنظف وأسهل في الصيانة. من أهمها دالة whereValueBetween() الجديدة، بالإضافة إلى...

أهم تحديثات Laravel و PHP لكتابة كود أنظف وأسرع

أغسطس 17, 2025

Laravel Global Scopes: Automatic Query Filtering Eloquent الأهمية: فرض فلترة ثابتة على جميع استعلامات الموديل (مثل Soft Deletes) دون تكرا...