ربط التطبيق مع firebase والتاكد من ارسال الرسائل للمستخدم | Android studio java

ربط التطبيق مع firebase والتاكد من ارسال الرسائل للمستخدم

ربط التطبيق مع firebase والتاكد من ارسال الرسائل للمستخدم

في هذا المقال سوف نقوم بربط التطبيق الخاص بنا بخدمة الفابيز والتاكد من التوكن الخاص باليوزر وارسال له الرسائل وهذة المقالة تعد ثاني مقالة في انشاء تطبيق chat عن طريق برنامج اندرويد ستوديو , وهذا يعد ثاني تطبيق نقوم بإنشاءه في قسم الفايربيز حيث ان اول تطبيق كان عباره عن تطبيق بسيط يربط العميل بالمندوب .


أصبح الاقبال على ظيفة android developer كبير جدا في هذه الايام وذلك لان مجال ال developing اصبح مطور بكثره في مختلف الدول سواء العربيه او الاجنبيه وليس فقط android developer بل هناك ios developer وهو الشخص المتخصص في تطوير تطبيقات نظام ios الخاص بشركة apple وفي الغالب يكون راتب الios developer اكبر في بعض الاحيان وذلك بسبب قلة المبرمجين في نظام ios واصبحت الكثير من القنوات والمواقع على منصة YouTube تختص بشروحات ios وايضا android ويعد موقعنا واحد من اكبر المواقع المختصه في هذا المجال ومساعدة المبرمجين في التعلم .


اثناء تعلمك للdevelopment يفضل ان يكون لديك ورقه وقلم لتدوين كل ما تحتاجه وتتعلمه ولكن نحن في موقعنا نقوم بتوفير لك كل ما تريد دون الحاجه الى الورقه والقلم فقط كل ما تحتاجه هو التطبيق على الدروس التي نضعها وحسب لكي تفهم كيف يعمل الكود وايضا تكتسب خبره من كثرة كتابة الcode, ودائما حاول ان تعتمد بشكل كبير على انماط التصميم في البرجخ مثل mvvm وهو اشهر نمط حاليا والكثير من الشركات تطلبه ولك لاهميته التنظميه في كتابة الكود مما يجعل من اي شخص اخر قادر على التعديل على الكود الخاص بك ويعرف كل شخص عمله ui , back , developer يكون كل شخص قادر على معرفة وظيفته بالتحديد 


الحصول على token المستخدم وارسال اشعارات لمستخدمي التطبيق

قم اولا بإنشاء كلاس جديد باسم MessagingService وتاكد من انه يرث من FirebaseMessagingService وبعدها يوجد لديك onNewToken وهذا التوكن الجديد الخاص باليوزر ويمكنك عمل له logi لكي تشاهدة في logcat وايضا onMessageReceived وهي التي سوف نقوم بعمل بداخلها الكود الذي سوف يقوم بتشغيل الاشعارات ولكن بشكل بسيط سوف نقوم بعمل logd بداخله للتاكد من ارسال الرسائل .

الحصول على token المستخدم وارسال اشعارات لمستخدمي التطبيق

MessagingService


public class MessagingService extends FirebaseMessagingService {

    // getting user token .
    @Override
    public void onNewToken(@NonNull String token) {
        super.onNewToken(token);
        Log.d("FCM" , "Token : " + token);
        
    }


    // sending message from firebase ( server )
    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Log.d("FCM" , "Message : " + remoteMessage.getNotification().getBody());

    }
}


اضافة permission الانترنت و service الFCM في mainfest

اضافة permission الانترنت و service الFCM في mainfest

الخطوة التاليه وهي عمل service داخل ملف mainfest ويمكنك الحصول على الكود الخاص بالservice من الfirebase عن طريق النقر على علامة الفايربيز الموجوده يمين الشاشه وتفتح قائمة FCM وانزل الى الاسفل الى ان تصل الى service وانسخ الكود والصقه قبل نهاية application مع التاكد من تغيير اسم الname بالاسم الذي قمت بتسميته في الclass السابق 

        <service
            android:name=".firebase.MessagingService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        


ارسال message الى جميع الاجهزة التي تستعمل تطبيقك android studio

الخطوة التالية هي فتح خدمة الفايربيز ومنها سوف نقوم بارسال اشعارات لكل مستخدمي التطبيق 


ارسال message الى جميع الاجهزة التي تستعمل تطبيقك android studio

ارسال message الى جميع الاجهزة التي تستعمل تطبيقك android studio

ارسال message الى جميع الاجهزة التي تستعمل تطبيقك android studio

اضافة البيانات الى firebase


اضافة البيانات الى firebase

في هذا الجزء سوف بعمل تجربة بسيطة وهي ارسال البيانات الخاصه بالمستخدم الى firebase , هذة البيانات في الكلاس المسؤول عن عملية التسجيل ويتم ارسال البيانات بمجرد النقر على زر تسجيل والذي قمنا بإنشاءه في المقالة السابقة 

    private void setData_for_firebase () {
        FirebaseFirestore firestore = FirebaseFirestore.getInstance();

        HashMap<String , Object> hashMap = new HashMap<>();
        hashMap.put("name" , "ahmed");
        hashMap.put("age" , "15");

        firestore.collection("user").add(hashMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
            @Override
            public void onSuccess(DocumentReference documentReference) {
                Toast.makeText(SignInActivity.this, "Uploaded data", Toast.LENGTH_SHORT).show();
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(SignInActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        }) ;
    }
    


تثبيت اضافة multiDex

تثبيت اضافة multiDex

هذة الخدمة multiDex عليك تفعيلها في التطبيقات التي تحدث بها بيانات ضخمة وهي بانه اذا كانت عدد البيانات اكثر من 65 الف سوف يسبب لك مشاكل في التطبيق ولن يعمل معك فكرة الmultiDex هو تقسيم هذا العدد الى اجزاء بمعنى كل بلوك يحتوي على عدد معين لكي لا يحدث معك مشاكل في التطبيق الخاص بك وطريقة تفعيلها كما هي موضحه بالصور


android {

    defaultConfig {

        multiDexEnabled true

}


********

dependencies {

    // multiDex

    implementation 'androidx.multidex.multidex:2.0.1'

}


تعليقات