Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

অ্যান্ড্রয়েডে ফায়ারবেস ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপ সেট আপ করুন

আপনার Firebase ক্লাউড মেসেজিং অ্যান্ড্রয়েড ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে, ব্যবহার FirebaseMessaging এপিআই এবং অ্যান্ড্রয়েড স্টুডিও 1.4 বা উচ্চতর Gradle সঙ্গে। এই পৃষ্ঠার নির্দেশাবলী ধরে নেওয়া যে আপনি অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করার পদক্ষেপগুলি সম্পন্ন করেছেন।

এফসিএম ক্লায়েন্টদের অ্যান্ড্রয়েড 4..১ বা তার বেশি বর্ধিত ডিভাইসের প্রয়োজন রয়েছে যা গুগল প্লে স্টোর অ্যাপ্লিকেশন ইনস্টল করেছে বা গুগল এপিআই সহ অ্যান্ড্রয়েড ৪.১ চালাচ্ছে এমন একটি এমুলেটর রয়েছে। মনে রাখবেন যে আপনি গুগল প্লে স্টোরের মাধ্যমে আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন সীমাবদ্ধ করে নেই।

এসডিকে সেট আপ করুন

আপনি যদি ইতিমধ্যে আপনার অ্যাপ্লিকেশনের জন্য অন্য ফায়ারবেস বৈশিষ্ট্যগুলি সক্ষম করে থাকেন তবে এই বিভাগটি আপনার দ্বারা সম্পন্ন কাজগুলি কভার করে।

তুমি শুরু করার আগে

  • অ্যান্ড্রয়েড স্টুডিওর সর্বশেষতম সংস্করণে ইনস্টল বা আপডেট করুন।

  • আপনার প্রকল্পটি এই প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করুন:

    • এপিআই স্তরের 16 (জেলি বিন) বা তার পরে লক্ষ্যগুলি
    • গ্রেডেল 4.1 বা তার পরে ব্যবহার করে
    • জেটপ্যাক (অ্যান্ড্রয়েডএক্স) ব্যবহার করে, যা এই সংস্করণের প্রয়োজনীয়তাগুলি পূরণ করে:
      • com.android.tools.build:gradle গ্রেডেল v3.2.1 বা তার পরে
      • 28 বা তার পরে compileSdkVersion
  • একটি দৈহিক ডিভাইস সেট আপ করুন বা আপনার অ্যাপ্লিকেশন চালানোর জন্য একটি এমুলেটর ব্যবহার করুন।
    এমুলেটরদের অবশ্যই গুগল প্লে সহ একটি এমুলেটর চিত্র ব্যবহার করা উচিত।

  • আপনার গুগল অ্যাকাউন্ট ব্যবহার করে ফায়ারবেসে সাইন ইন করুন

আপনার যদি ইতিমধ্যে কোনও অ্যান্ড্রয়েড প্রকল্প না থাকে এবং কেবল ফায়ারবেস পণ্য ব্যবহার করে দেখতে চান তবে আপনি আমাদের কুইকস্টার্ট নমুনাগুলির মধ্যে একটি ডাউনলোড করতে পারেন।

ফায়ারবেস প্রকল্প তৈরি করুন

আপনি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে ফায়ারবেস যুক্ত করার আগে আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনে সংযুক্ত হওয়ার জন্য আপনাকে ফায়ারবেস প্রকল্প তৈরি করতে হবে। ফায়ারবেস প্রকল্পগুলি সম্পর্কে আরও জানার জন্য ফায়ারবেস প্রকল্পগুলি বোঝা দেখুন।

ফায়ারবেস দিয়ে আপনার অ্যাপ্লিকেশন নিবন্ধন করুন

আপনার ফায়ারবেস প্রকল্পের পরে, আপনি এটিতে আপনার অ্যান্ড্রয়েড অ্যাপ যুক্ত করতে পারেন।

ফায়ারবেস প্রকল্পে অ্যাপ্লিকেশনগুলি যুক্ত করার জন্য সর্বোত্তম অনুশীলন এবং বিবেচনার জন্য আরও একাধিক বিল্ড বৈকল্পিকগুলি কীভাবে পরিচালনা করতে হবে সে সম্পর্কে আরও জানার জন্য ফায়ারবেস প্রকল্পগুলি বোঝা দেখুন।

  1. ফায়ারবেস কনসোলে যান।

  2. প্রকল্পের ওভারভিউ পৃষ্ঠার কেন্দ্রে সেটআপ ওয়ার্কফ্লো প্রবর্তন করতে অ্যান্ড্রয়েড আইকন ( ) ক্লিক করুন।

    যদি আপনি ইতিমধ্যে আপনার ফায়ারবেস প্রকল্পে একটি অ্যাপ যুক্ত করেছেন, প্ল্যাটফর্মের বিকল্পগুলি প্রদর্শন করতে অ্যাপ্লিকেশন যুক্ত করুন ক্লিক করুন।

  3. অ্যান্ড্রয়েড প্যাকেজ নেম ক্ষেত্রে আপনার অ্যাপের প্যাকেজের নাম লিখুন।

  4. (Alচ্ছিক) অন্যান্য অ্যাপ্লিকেশন তথ্য প্রবেশ করুন: অ্যাপ ডাকনাম এবং ডিবাগ স্বাক্ষর শংসাপত্র SHA-1

  5. অ্যাপ্লিকেশন রেজিস্টার ক্লিক করুন

একটি ফায়ারবেস কনফিগারেশন ফাইল যুক্ত করুন

  1. আপনার অ্যাপ্লিকেশনটিতে ফায়ারবেস অ্যান্ড্রয়েড কনফিগারেশন ফাইল যুক্ত করুন:

    1. আপনার ফায়ারবেস অ্যান্ড্রয়েড কনফিগারেশন ফাইল ( google-services.json ) পেতে google-Services.json ডাউনলোড করুন ক্লিক করুন

    2. আপনার অ্যাপ্লিকেশনটির মডিউল (অ্যাপ্লিকেশন-স্তর) ডিরেক্টরিতে আপনার কনফিগারেশন ফাইলটি সরান।

  2. আপনার অ্যাপে ফায়ারবেস পণ্য সক্ষম করতে, আপনার গ্রেডল ফাইলগুলিতে গুগল-পরিষেবা প্লাগইন যুক্ত করুন add

    1. আপনার মূল-স্তরের (প্রকল্প-স্তর) গ্রেডল ফাইল ( build.gradle ) এ, Google পরিষেবাদি গ্রেডল প্লাগইন অন্তর্ভুক্ত করার জন্য বিধিগুলি যুক্ত করুন। আপনারও গুগলের ম্যাভেন সংগ্রহস্থল রয়েছে কিনা তা পরীক্ষা করে দেখুন।

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. আপনার মডিউলে (অ্যাপ্লিকেশন-স্তর) গ্রেডল ফাইল (সাধারণত app/build.gradle ), Google পরিষেবাদি গ্রেডল প্লাগইন প্রয়োগ করুন:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

আপনার অ্যাপে ফায়ারবেস এসডিকে যুক্ত করুন

  1. আপনার মডিউল (অ্যাপ্লিকেশন-স্তরের) গ্রেডল ফাইলটিতে (সাধারণত app/build.gradle ), আপনি আপনার অ্যাপ্লিকেশনটিতে যে ফায়ারবেস পণ্য ব্যবহার করতে চান তার জন্য নির্ভরতা যুক্ত করুন।

    আপনি আপনার অ্যান্ড্রয়েড অ্যাপে সমর্থিত ফায়ারবেস পণ্যগুলির মধ্যে যে কোনওটিকে যুক্ত করতে পারেন।

    ফায়ারবেস ক্লাউড মেসেজিংয়ের সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার প্রকল্পে গুগল অ্যানালিটিকাগুলি সক্ষম করার পরামর্শ দিচ্ছি। এছাড়াও, অ্যানালিটিক্স স্থাপনের অংশ হিসাবে আপনার অ্যাপ্লিকেশনটিতে Google অ্যানালিটিকাগুলির জন্য ফায়ারবেস এসডিকে যুক্ত করা দরকার।

    বিশ্লেষণ সক্ষম

    dependencies {
      // ...
    
      // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
      implementation 'com.google.firebase:firebase-messaging:20.2.4'
      implementation 'com.google.firebase:firebase-analytics:17.5.0'
    }
    
    // Getting a "Could not find" error? Make sure that you've added
    // Google's Maven repository to your project-level build.gradle file
    

    বিশ্লেষণ সক্ষম নয়

    dependencies {
      // ...
    
      // Add the dependency for the Firebase Cloud Messaging library
      implementation 'com.google.firebase:firebase-messaging:20.2.4'
    }
    
    // Getting a "Could not find" error? Make sure that you've added
    // Google's Maven repository to your project-level build.gradle file
    
  2. সমস্ত নির্ভরতার প্রয়োজনীয় সংস্করণ রয়েছে তা নিশ্চিত করতে আপনার অ্যাপ সিঙ্ক করুন।

আপনার অ্যাপ্লিকেশন ম্যানিফেস্ট সম্পাদনা করুন

আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্টে নিম্নলিখিতটি যুক্ত করুন:

  • একটি পরিষেবা যা FirebaseMessagingService প্রসারিত করে। আপনি যদি পটভূমিতে অ্যাপগুলিতে বিজ্ঞপ্তি পাওয়ার বাইরে কোনও বার্তা হ্যান্ডলিং করতে চান তবে এটি প্রয়োজন। অগ্রণীযুক্ত অ্যাপ্লিকেশনগুলিতে বিজ্ঞপ্তিগুলি পেতে, ডেটা পেলোড গ্রহণ করতে, প্রবাহিত বার্তাগুলি প্রেরণ করতে এবং এই জাতীয়, আপনাকে অবশ্যই এই পরিষেবাটি প্রসারিত করতে হবে।
  • <service
        android:name=".java.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
  • (Ptionচ্ছিক) অ্যাপ্লিকেশন উপাদানটির মধ্যে, একটি ডিফল্ট বিজ্ঞপ্তি আইকন এবং রঙ সেট করতে মেটাডেটা উপাদান। যখনই আগত বার্তা স্পষ্টভাবে আইকন বা রঙ সেট না করে অ্যান্ড্রয়েড এই মানগুলি ব্যবহার করে।
  • <!-- Set custom default icon. This is used when no icon is set for incoming notification messages.
         See README(https://goo.gl/l4GJaQ) for more. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_stat_ic_notification" />
    <!-- Set color used with incoming notification messages. This is used when no color is set for the incoming
         notification message. See README(https://goo.gl/6BKBk7) for more. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />
  • (Ptionচ্ছিক) অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) এবং উচ্চতর থেকে, বিজ্ঞপ্তি চ্যানেলগুলি সমর্থিত এবং প্রস্তাবিত। এফসিএম বেসিক সেটিংস সহ একটি ডিফল্ট বিজ্ঞপ্তি চ্যানেল সরবরাহ করে। আপনি যদি নিজের নিজস্ব ডিফল্ট চ্যানেল তৈরি করতে এবং ব্যবহার করতে পছন্দ করেন তবে প্রদর্শিত বিজ্ঞপ্তি চ্যানেল অবজেক্টের আইডিতে default_notification_channel_id সেট করুন; যখনই আগত বার্তাগুলি স্পষ্টভাবে কোনও বিজ্ঞপ্তি চ্যানেল সেট না করে এফসিএম এই মানটি ব্যবহার করবে। আরও জানতে, বিজ্ঞপ্তি চ্যানেলগুলি পরিচালনা করুন দেখুন।
  • <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />

ডিভাইস নিবন্ধকরণ টোকেন অ্যাক্সেস করুন

আপনার অ্যাপ্লিকেশনটির প্রারম্ভিক সময়ে, FCM SDK ক্লায়েন্ট অ্যাপ্লিকেশনটির জন্য একটি নিবন্ধকরণ টোকেন উত্পন্ন করে। আপনি যদি একক ডিভাইসগুলি লক্ষ্যবস্তু করতে চান বা ডিভাইস গোষ্ঠী তৈরি করতে চান তবে আপনাকে FirebaseMessagingService onNewToken প্রসারিত করে এবং onNewToken ওভাররাইড করে এই টোকেনটি অ্যাক্সেস করতে হবে।

এই বিভাগটি কীভাবে টোকেনটি পুনরুদ্ধার করবেন এবং কীভাবে টোকেনের পরিবর্তনগুলি নিরীক্ষণ করবেন তা বর্ণনা করে। প্রাথমিক সূচনার পরে টোকনটি ঘোরানো যেতে পারে তাই আপনার সর্বশেষ আপডেট হওয়া নিবন্ধকরণ টোকেনটি পুনরুদ্ধার করার জন্য দৃ strongly়ভাবে প্রস্তাব দেওয়া হচ্ছে।

নিবন্ধকরণ টোকেন পরিবর্তন হতে পারে যখন:

  • অ্যাপ্লিকেশনটি ইনস্ট্যান্স আইডি মুছে দেয়
  • অ্যাপ্লিকেশনটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
  • ব্যবহারকারী অ্যাপটি আনইনস্টল / পুনরায় ইনস্টল করে
  • ব্যবহারকারী অ্যাপ্লিকেশন ডেটা সাফ করে।

বর্তমান নিবন্ধকরণ টোকেন পুনরুদ্ধার করুন

যখন আপনাকে বর্তমান টোকেনটি পুনরুদ্ধার করতে হবে, FirebaseInstanceId.getInstance().getInstanceId() কল করুন FirebaseInstanceId.getInstance().getInstanceId() :

জাভা

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();

                // Log and toast
                String msg = getString(R.string.msg_token_fmt, token);
                Log.d(TAG, msg);
                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

কোটলিন + কেটিএক্স

30aa44262 বি

টোকেন প্রজন্মকে পর্যবেক্ষণ করুন

যখনই কোনও নতুন টোকেন উত্পন্ন হয় তখন onNewToken কলব্যাক ফায়ার হয়।

জাভা

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
@Override
public void onNewToken(String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token);
}

কোটলিন + কেটিএক্স

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token)
}

আপনি টোকেনটি পাওয়ার পরে, আপনি এটি আপনার অ্যাপ্লিকেশন সার্ভারে প্রেরণ করতে এবং আপনার পছন্দসই পদ্ধতিটি ব্যবহার করে এটি সঞ্চয় করতে পারেন। এপিআই- তে পূর্ণ বিবরণের জন্য ইনস্ট্যান্স আইডি এপিআই রেফারেন্সটি দেখুন।

গুগল প্লে পরিষেবাগুলির জন্য পরীক্ষা করুন

অ্যাপ্লিকেশনগুলি যা প্লে পরিষেবাদি এসডিকে নির্ভর করে তাদের সবসময় গুগল প্লে পরিষেবা বৈশিষ্ট্য অ্যাক্সেস করার আগে একটি উপযুক্ত গুগল প্লে পরিষেবাদি APK এর জন্য ডিভাইসটি চেক করা উচিত। এটি দুটি জায়গায় এটি করার পরামর্শ দেওয়া হয়: মূল ক্রিয়াকলাপের onCreate() পদ্ধতিতে এবং এর onResume() পদ্ধতিতে। onCreate() চেক ইন নিশ্চিত করে যে সফল চেক ছাড়া অ্যাপটি ব্যবহার করা যাবে না। onResume() - onResume() চেক ইন নিশ্চিত করে যে ব্যবহারকারী যদি ব্যাক বোতামের মাধ্যমে অন্য কোনও মাধ্যমে চলমান অ্যাপ্লিকেশনটিতে ফিরে আসে তবে চেকটি এখনও সম্পন্ন হয়।

ডিভাইসে যদি গুগল প্লে পরিষেবাদির একটি সামঞ্জস্যপূর্ণ সংস্করণ না থাকে, ব্যবহারকারীদের প্লে স্টোর থেকে গুগল প্লে পরিষেবাগুলি ডাউনলোড করার অনুমতি দেওয়ার জন্য আপনার অ্যাপ্লিকেশনটি GoogleApiAvailability.makeGooglePlayServicesAvailable() কল করতে পারে।

স্বয়ংক্রিয় সূচনা প্রতিরোধ করুন

ফায়ারবেস একটি ইনস্ট্যান্স আইডি উত্পন্ন করে যা এফসিএম রেজিস্ট্রেশন টোকেন তৈরি করতে ব্যবহার করে এবং অ্যানালিটিক্স ডেটা সংগ্রহের জন্য ব্যবহার করে। যখন কোনও ইনস্ট্যান্স আইডি তৈরি করা হয়, তখন গ্রন্থাগারটি ফায়ারবেসে সনাক্তকারী এবং কনফিগারেশন ডেটা আপলোড করবে। আপনি যদি ইনস্ট্যান্স আইডি অটোজেনারেশন রোধ করতে পছন্দ করেন তবে আপনার AndroidManifest.xml এই মেটাডেটা মানগুলি যুক্ত করে এফসিএম এবং অ্যানালিটিক্সের জন্য স্বয়ংক্রিয় সূচনা অক্ষম করুন (আপনাকে উভয়ই অক্ষম করতে হবে):

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

এফসিএম পুনরায় সক্ষম করতে একটি রানটাইম কল করুন:

জাভা

FirebaseMessaging.getInstance().setAutoInitEnabled(true);

কোটলিন + কেটিএক্স

FirebaseMessaging.getInstance().isAutoInitEnabled = true

এই মানটি একবার সেট হয়ে গেলে অ্যাপ্লিকেশনটির পুনরায় শুরু হয় across

পরবর্তী পদক্ষেপ

ক্লায়েন্ট অ্যাপ্লিকেশন সেট আপ হওয়ার পরে, আপনি বিজ্ঞপ্তি সুরকারের সাথে ডাউন স্ট্রিম বার্তা প্রেরণ শুরু করতে প্রস্তুত। এই কার্যকারিতাটি কুইকস্টার্ট নমুনায় প্রদর্শিত হয়, যা আপনি ডাউনলোড, চালানো এবং পর্যালোচনা করতে পারেন।

আপনার অ্যাপ্লিকেশনে অন্যান্য, আরও উন্নত আচরণ যুক্ত করতে, আপনি একটি উদ্দেশ্য ফিল্টার ঘোষণা করতে পারেন এবং আগত বার্তাগুলির প্রতিক্রিয়া জানাতে কোনও ক্রিয়াকলাপ বাস্তবায়ন করতে পারেন। বিশদ জন্য, একটি অ্যাপ সার্ভার থেকে বার্তা প্রেরণের গাইড দেখুন:

মনে রাখবেন যে এই বৈশিষ্ট্যগুলির সুবিধা গ্রহণের জন্য আপনার একটি সার্ভার বাস্তবায়ন এবং সার্ভার প্রোকোটলস (এইচটিটিপি বা এক্সএমপিপি), বা অ্যাডমিন এসডিকে একটি বাস্তবায়ন প্রয়োজন।