اذهب إلى المحتوى

السؤال

نشر

احتاج لكتابة أمر لأستخدام FCM  لمشروع Flutter

لدي  كائن  group تملك عنصر List<String> membersIDs

لدي كائن member يملك عنصر String   fmcAccessToken

اريد عند اضافة Product يحمل goupID ارسال أشعار لكل الأعضاء داخل المجموعة التي تحمل القيمة المتساوية مع goupID .

 

Recommended Posts

  • 1
نشر

لتنفيذ فكرتك يلزمك تهيئة وإضافة عدة أمور غير الـFCM، تابع الخطوات التالية:

  1. تهيئة وإستخدام FCM في تطبيقك ( تم الشرح من قبل الأخ بلال ) لإتاحة إستقبال التنبيهات في تطبيقك.
  2. تهيئة وإستخدام الـCloud Functions من خلال إضافتها كخاصية لمشروعك على الـFirebase Console، حيث أنها عبارة عن إطار عمل لا مركزي ولا يعتمد على السيرفر يوفر لك كتابة Functions وتنفيذها مباشرة عبر Http request أو بالإعتماد على أحداث أخرى تتعلق بمشروعك المنشئ على Firebase Console. الأحداث الذي نحتاجها في هذا المشروع هو حدث إضافة البيانات في قاعدة البيانات، أي أننا سنقوم بكتابة Function معينة يتم تنفيذها عند إضافة أي شيء في قاعدة البيانات.
  3. تحميل وتثبيت NodeJS  وهو عبارة عن بيئة تشغيل خاصة بالـJavascript حيث سنحتاجه لتثبيت حزم تساعدنا في كتابة ورفع كود الـFunction  للـCloud.
  4. تثبيت الحزمة Firebase CLI من خلال تنفيذ الأمر التالي في سطر الأوامر:
    npm install -g firebase-tools

    ستحتاج أيضاً لتسجيل الدخول بإستخدام حساب Google الخاص بك، لمعلومات إضافية يرجى مراجعة التعليمات من الموقع الرسمي.

  5. بعد ذلك يمكنك كتابة كود javascript أو typescript كـFunction يتم تنفيذها عند وقوع الحدث التي تريد،ومن ثم إختبار ورفع الكود.

بعد إنهاء الخطوات أعلاه نحصل على بيئة عمل مهيئة لكتابة الكود ورفعه للـfirebase cloud. لكن قبل كتابة الكود سنقوم بالتعرف على أربعة أحداث ( events ) خاصة بقواعد البيانات حيث سنستخدمها في مشروعنا وهي:

  1. onCreate : ينفذ هذا الحدث عند إنشاء Document جديدة في قاعدة البيانات.
  2. onUpdate : ينفذ هذا الحدث عند التعديل على Document ما.
  3. onDelete : ينفذ هذا الحدث عند حذف Document ما.
  4. onWrite : ينفذ هذا الحدث عند تنفيذ الأحداث onCreate ، onUpdate أو onDelete.

بعد التعرف على مختلف الأحداث الخاصة بالبيانات هيا بنا لنكتب الكود الذي ينفذ كود معين عند إضافة Document جديدة في قاعدة البيانات:
 

exports.CreateDoc = functions.firestore
    .document('myDocs/{docID}') // المسار الذي تريد تتبعه
    .onCreate((snap, context) => {
		//الكود الذي تود تنفيذه
    });

بعد كتابة الكود نقوم برفعه للـFirebase Cloud عن طريق الأمر التالي في سطر الأوامر:

firebase deploy --only functions

 

  • 1
نشر

ممكن إرفاق الكود الخاص بك ؟ 

لإضافة Firebase Cloud Messaging يجب إضافة مكتبة 

  firebase_messaging: ^7.0.3

إلى ملف pupsbec.ymal في مشرعك تجد المكتبة هنا .

ثم من firebase console تقوم بتحميل ملف google-service.json إلى مشروعك في مسار android\app, 

ثم إضافة classpath في ملف android/build.gradle

dependencies {
  
  // Add the google services classpath
  classpath 'com.google.gms:google-services:4.3.2'
}

وفي ملف android/app\build.gradle

تضع 

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

وفي ملف android/app/src/main/AndroidManifest.xml

تضع 

<intent-filter>
      <action android:name="FLUTTER_NOTIFICATION_CLICK" />
      <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>

ضمن activity tag.

ومن ثم هنا تجد التوثيق الخاص بقوقل فايربيز لكيفية التعامل مع المكتبات بعد تضمينها في flutter

هنا أو هنا

يمكن النظر في الكود الخاص بك بعد إرفاقه.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...