بسم الله الرحمن الرحيم
سوف نتعلم أصدقائي في هذا الدرس كيفية ارسال الإشعارات من لوحة التحكم الخاصة بجوجل فايربيس و استقبالها من تطبيقك.
في البداية يجب عليك متابعة الدرس التالي وتطبيقه لتجهيز مشروعك الأندرويد : تجهيز مشروعك الأندرويد لاستقبال خدمات جوجل فايربيس Firebase Google
build.gradle (Module: app) بعد القيام بالخطوات السابقة, نقوم بفتح ملف
وبداخل أوسمة dependencies نقوم بإضافة السطر التالي : ( لتفعيل مكتبة فايربيس للاشعارات ).
compile 'com.google.firebase:firebase-messaging:9.4.0'
ثم بإنشاء كلاس جديد ونقوم بتسميته مثلاً : MessagingService > والامتداد يكون من extends FirebaseMessagingService . ولا يحتوي على إي أكواد.
ونقوم كذلك بإنشاء كلاس جديد ونقوم بتسميته : IDService > والامتداد يكون من extends FirebaseInstanceIdService . ولا يحتوي على إي أكواد.
والآن نذهب إلى ملف AndroidManifest.xml وبداخل أوسمة application نضيف التالي :
<service android:name=".MessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service> <service android:name=".IDService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> </intent-filter> </service>
تمام هكذا فقط, العملية بسيطة ولكن تحتاج تركيز !! لنذهب الآن ونقوم بتجربة إرسال إشعار إلى التطبيق.
نذهب إلى لوحة التحكم : https://console.firebase.google.com/ ونقوم بإختيار المشروع الخاص بنا, ومن القائمة اليسرى نتوجه إلى Notifications , ثم نضغط على NEW MESSAGE .
إذا قمت بإرسال رسالة وانتظرت 60 ثانية, ولم تصلك. لتقم بالخطوة التالية :
أرجع إلى برنامج الأندرويد ستوديو وعلى اليمين سوف تجد مربع صغير مكتوب داخله Gradle اضغط عليه, سوف تخرج لك نافذة, اختر اسم المشروع, ثم اسم المشروع (root) ثم Tasks ثم android ثم signingReport اضغط عليها ضغطات متتالية. سوف تظهر لك نافذة Run في الأسفل. وفيها معلومات, انسخ الرقم SHA1. للتوضيح في الصورة التالية.
بعد نسخ رقم SHA1 , توجه إلى لوحة التحكم https://console.firebase.google.com واختر المشروع, ثم التطبيق من اعلاه اختر Manage . ثم اختر ADD FINGERPRINT وقم بلصق SHA1 ثم اضغط SAVE , وبعد تقريباً 1-5 دقائق, جرب مرة أخرى إرسال إشعار كما تعلمنا سابقاً.
وهكذا نكون أنتهينا من درس اليوم .. إلى لقاء في دروس جديدة وحصرية لكم ..
إي مشاكل او استفسارات او اقتراحات ,, اكتبها في التعليقات .. وفي الختام ” السلام ” 🙂
يوجد مشكلة أن التطبيق لايستقبل الاشعارات
اظن المشكلة ان الملفين
FirebaseMessagingService و FirebaseInstanceIdService بقيا فارغين
جربت الخطوات في https://firebase.google.com/docs/notifications/android/console-audience
وبقيت نفس المشكلة
“التطبيق لايعطي أي خطأ اثناء التنفيذ”
لا مشكلة فارغين .. فقط الامتداد صحيح كما ذكرنا .. ( جرب معاينة التطبيق على جوال حقيقي ) وسوف يعمل 🙂
بالتأكيد في مشكلة كيف سيظهر الأشعار إن لم نبرمج ذلك؟
قمت بإدخال بيانات داخل الملفين كما هو موجود في الرابط السابق الذي وضعته
وبتعديل compile ‘com.google.firebase:firebase-messaging:9.4.0’
الى
compile ‘com.google.firebase:firebase-messaging:9.0.0’
لان اصدار خدمات غوغل كان اقل وعمل التطبيق وتم استلام الاشعار
لم افهم هذه النقطة
ثم بإنشاء كلاس جديد ونقوم بتسميته مثلاً : MessagingService > والامتداد يكون من extends FirebaseMessagingService . ولا يحتوي على إي أكواد.
ونقوم كذلك بإنشاء كلاس جديد ونقوم بتسميته : IDService > والامتداد يكون من extends FirebaseInstanceIdService . ولا يحتوي على إي أكواد.
شكرا لك صديقي على مشاركة تلك المعلومات القيمة حول التعامل مع اندرويد استوديو
اود السؤال اخي قمت بعمل الخطوات و قد تم استقبال الاشعارات في التطبيق بنجاح و ذلك باتباع الخطوات من منصة firebase لكن ما الفائدة من انشاء class وهل له علاقة بامور ثانوية اخرى
اخي كيف ممكن اني كل ما اضيف خبر من التطبيق ارسل اشعارات لكل المستخدمين لتطبيق
السلام علیکم آخی:
الحمد لله طبقت كل الخطوات و جاءت النتيجة نتيجة 100 ب 100 .
لدي سؤال آخر، أريد أن ارسل إشعار لكن على شكل رابط، حيث عندما يضغط عليها المستخدم ينتقل إلى موقع الرابط الذي ارسلته.
هلا تتكرم علينا بالطريقة الأسهل للقيام بذلك
اخي أرجو الرد على تساؤلاتنا ولو بكلمة واحدة
فأنا لاحظت انك لا ترد على تعليقات الإخوة، إلا نادرا