बैकग्राउंड में चलने वाले ऐप्लिकेशन को टेस्ट मैसेज भेजना

FCM के साथ शुरू करने के लिए, सबसे आसान इस्तेमाल का उदाहरण बनाएं: ऐप्लिकेशन के बैकग्राउंड में चलने पर, सूचनाएं लिखने वाले व्यक्ति से डेवलपमेंट डिवाइस पर जांच के लिए सूचना वाला मैसेज भेजें. अगर आपने FCM के लिए Android क्लाइंट ऐप्लिकेशन सेट अप किया है, तो इस पेज पर, सेटअप करने से लेकर पुष्टि करने तक के सभी चरणों की जानकारी दी गई है.

SDK टूल सेट अप करें

अगर आपने अपने ऐप्लिकेशन के लिए पहले से Firebase की अन्य सुविधाएं चालू की हुई हैं, तो हो सकता है कि आप इस सेक्शन में पूरे किए गए टास्क को इस सेक्शन में शामिल करें.

वेब कंटेनर इंस्टॉल करने से पहले

  • Android Studio को इंस्टॉल या अपडेट करें.

  • पक्का करें कि आपका प्रोजेक्ट इन ज़रूरी शर्तों को पूरा करता हो (ध्यान दें कि कुछ प्रॉडक्ट की शर्तें ज़्यादा सख्त हो सकती हैं):

    • टारगेट एपीआई लेवल 19 (KitKat) या उससे ज़्यादा लेवल को टारगेट करता है
    • जो Android 4.4 या इसके बाद वाले वर्शन का इस्तेमाल करते हों
    • Jetpack (AndroidX) का इस्तेमाल करता है. इसमें वर्शन की इन ज़रूरी शर्तों को पूरा करना शामिल है:
      • com.android.tools.build:gradle v7.3.0 या इसके बाद का वर्शन
      • compileSdkVersion 28 या उसके बाद
  • अपने ऐप्लिकेशन को चलाने के लिए, कोई फ़िज़िकल डिवाइस सेट अप करें या एम्युलेटर का इस्तेमाल करें.
    ध्यान दें कि Google Play services पर निर्भर Firebase SDK टूल के लिए, डिवाइस या एम्युलेटर पर Google Play services इंस्टॉल होना ज़रूरी है.

  • अपने Google खाते का इस्तेमाल करके Firebase में साइन इन करें.

अगर आपके पास पहले से कोई Android प्रोजेक्ट नहीं है और आपको सिर्फ़ Firebase प्रॉडक्ट आज़माना है, तो हमारे क्विकस्टार्ट सैंपल में से कोई एक डाउनलोड किया जा सकता है.

Firebase प्रोजेक्ट बनाना

अपने Android ऐप्लिकेशन में Firebase जोड़ने से पहले, आपको अपने Android ऐप्लिकेशन से कनेक्ट करने के लिए एक Firebase प्रोजेक्ट बनाना होगा. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी पेज पर जाएं.

अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर करना

अपने Android ऐप्लिकेशन में Firebase का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को Firebase प्रोजेक्ट के साथ रजिस्टर करना होगा. ऐप्लिकेशन को रजिस्टर करने को अक्सर आपके प्रोजेक्ट में "ऐप्लिकेशन जोड़ना" कहा जाता है.

  1. Firebase कंसोल पर जाएं.

  2. सेटअप वर्कफ़्लो को लॉन्च करने के लिए, प्रोजेक्ट की खास जानकारी देने वाले पेज के बीच में मौजूद, Android आइकॉन () या ऐप्लिकेशन जोड़ें पर क्लिक करें.

  3. Android पैकेज का नाम फ़ील्ड में, अपने ऐप्लिकेशन के पैकेज का नाम डालें.

  4. (ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का कोई दूसरा नाम और SHA-1 के हस्ताक्षर वाले सर्टिफ़िकेट को डीबग करें.

  5. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.

Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना

  1. डाउनलोड करें और फिर अपने ऐप्लिकेशन में Firebase Android कॉन्फ़िगरेशन फ़ाइल (google-services.json) जोड़ें:

    1. अपनी Firebase Android कॉन्फ़िगरेशन फ़ाइल पाने के लिए, google-services.json डाउनलोड करें पर क्लिक करें.

    2. अपनी कॉन्फ़िगरेशन फ़ाइल को ऐप्लिकेशन के मॉड्यूल (ऐप्लिकेशन-लेवल) रूट डायरेक्ट्री में ले जाएं.

  2. अपनी google-services.json कॉन्फ़िगरेशन फ़ाइल की वैल्यू को Firebase SDK टूल से ऐक्सेस करने के लिए, आपको Google की सेवाओं के Gradle प्लग इन (google-services) की ज़रूरत होगी.

    1. अपनी रूट-लेवल (प्रोजेक्ट-लेवल) की Gradle फ़ाइल (<project>/build.gradle.kts या <project>/build.gradle) में, डिपेंडेंसी के तौर पर Google सेवाएं प्लगिन जोड़ें:

      Kotlin

      plugins {
        id("com.android.application") version "7.3.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.4.2" apply false
      }
      

      Groovy

      plugins {
        id 'com.android.application' version '7.3.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.4.2' apply false
      }
      
    2. अपने मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Google की सेवाएं प्लगिन जोड़ें:

      Kotlin

      plugins {
        id("com.android.application")
      
        // Add the Google services Gradle plugin
        id("com.google.gms.google-services")
        // ...
      }
      

      Groovy

      plugins {
        id 'com.android.application'
      
        // Add the Google services Gradle plugin
        id 'com.google.gms.google-services'
        // ...
      }
      

अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ना

  1. अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर, <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Android के लिए Firebase क्लाउड से मैसेज लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, हम Firebase Android BoM का इस्तेमाल करने का सुझाव देते हैं.

    Firebase क्लाउड से मैसेज के साथ बेहतर अनुभव पाने के लिए, हमारा सुझाव है कि आप अपने Firebase प्रोजेक्ट में Google Analytics चालू करें. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ें.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging")
        implementation("com.google.firebase:firebase-analytics")
    }
    

    Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase की Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.

    (वैकल्पिक) BoM का इस्तेमाल किए बिना Firebase लाइब्रेरी डिपेंडेंसी जोड़ें

    अगर आप Firebase BoM का इस्तेमाल नहीं करना चाहते हैं, तो आपको उसकी डिपेंडेंसी लाइन में Firebase लाइब्रेरी के हर वर्शन की जानकारी देनी होगी.

    ध्यान दें कि अगर आप अपने ऐप्लिकेशन में कई Firebase लाइब्रेरी का इस्तेमाल करते हैं, तो हमारा सुझाव है कि लाइब्रेरी के वर्शन मैनेज करने के लिए, BoM का इस्तेमाल करें. इससे यह पक्का होता है कि ऐप्लिकेशन के सभी वर्शन काम करते हैं.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging:24.0.0")
        implementation("com.google.firebase:firebase-analytics:22.0.2")
    }
    
    क्या आपको Kotlin से जुड़े लाइब्रेरी मॉड्यूल की तलाश है? अक्टूबर 2023 (Firebase BoM 32.5.0) से, Kotlin और Java डेवलपर, दोनों मुख्य लाइब्रेरी मॉड्यूल पर निर्भर कर सकते हैं. ज़्यादा जानकारी के लिए, इस इनिशिएटिव के बारे में अक्सर पूछे जाने वाले सवाल देखें.

  2. अपने Android प्रोजेक्ट को Gradle फ़ाइलों के साथ सिंक करें.

रजिस्ट्रेशन टोकन ऐक्सेस करना

किसी डिवाइस पर मैसेज भेजने के लिए, आपके पास उस डिवाइस के रजिस्ट्रेशन टोकन की जानकारी होनी चाहिए. इस ट्यूटोरियल को पूरा करने के लिए, आपको सूचना कंसोल में मौजूद किसी फ़ील्ड में टोकन डालना होगा. इसलिए, टोकन को कॉपी करना न भूलें या वापस पाने के बाद उसे सुरक्षित तरीके से सेव करें.

आपके ऐप्लिकेशन के शुरुआती स्टार्टअप पर, FCM SDK टूल क्लाइंट ऐप्लिकेशन इंस्टेंस के लिए रजिस्ट्रेशन टोकन जनरेट करता है. अगर आपको किसी एक डिवाइस को टारगेट करना है या डिवाइस ग्रुप बनाना है, तो आपको FirebaseMessagingService की समयसीमा बढ़ाकर और onNewToken को ओवरराइड करके, इस टोकन को ऐक्सेस करना होगा.

इस सेक्शन में, टोकन को फिर से पाने और उसमें हुए बदलावों को मॉनिटर करने का तरीका बताया गया है. शुरुआती तौर पर शुरू होने के बाद, टोकन को घुमाया जा सकता है. इसलिए, हमारा सुझाव है कि आप अपडेट किया गया सबसे नया रजिस्ट्रेशन टोकन फिर से पाएं.

रजिस्ट्रेशन टोकन तब बदल सकता है, जब:

  • ऐप्लिकेशन को नए डिवाइस पर वापस लाया गया
  • जब उपयोगकर्ता ऐप्लिकेशन को अनइंस्टॉल करता है/फिर से इंस्टॉल करता है
  • उपयोगकर्ता, ऐप्लिकेशन का डेटा मिटाता है.

मौजूदा रजिस्ट्रेशन टोकन वापस पाएं

जब आपको मौजूदा टोकन वापस पाना हो, तो FirebaseMessaging.getInstance().getToken() पर कॉल करें:

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // 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();
        }
    });

टोकन जनरेट करने की प्रोसेस पर नज़र रखें

जब भी कोई नया टोकन जनरेट होता है, तब onNewToken कॉलबैक ट्रिगर होता है.

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration 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
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull 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
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

टोकन मिलने के बाद, उसे अपने ऐप्लिकेशन सर्वर पर भेजें और अपने पसंदीदा तरीके का इस्तेमाल करके उसे सेव करें.

परीक्षण सूचना संदेश भेजें

  1. टारगेट डिवाइस पर ऐप्लिकेशन इंस्टॉल करें और चलाएं. Apple डिवाइसों पर, रिमोट नोटिफ़िकेशन पाने के लिए आपको अनुरोध स्वीकार करना होगा.

  2. पक्का करें कि ऐप्लिकेशन, डिवाइस के बैकग्राउंड में चल रहा हो.

  3. Firebase कंसोल में, मैसेज सेवा पेज खोलें.

  4. अगर यह आपका पहला मैसेज है, तो अपना पहला कैंपेन बनाएं चुनें.

    1. Firebase सूचना मैसेज चुनें और बनाएं चुनें.
  5. या फिर, कैंपेन टैब पर नया कैंपेन चुनें और फिर सूचनाएं चुनें.

  6. मैसेज का टेक्स्ट डालें. अन्य सभी फ़ील्ड ज़रूरी नहीं हैं.

  7. दाएं पैनल से, टेस्ट मैसेज भेजें को चुनें.

  8. FCM रजिस्ट्रेशन टोकन जोड़ें लेबल वाले फ़ील्ड में, इस गाइड के पिछले सेक्शन में मिला रजिस्ट्रेशन टोकन डालें.

  9. जांचें को चुनें.

जांच करें चुनने के बाद, टारगेट किए गए क्लाइंट डिवाइस (बैकग्राउंड में ऐप्लिकेशन के साथ) को सूचना मिलेगी.

अपने ऐप्लिकेशन पर मैसेज डिलीवरी के बारे में अहम जानकारी के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें. यह Apple और Android डिवाइस पर भेजे गए और खोले गए मैसेज की संख्या रिकॉर्ड करता है. साथ ही, इसमें Android ऐप्लिकेशन के "इंप्रेशन" (उपयोगकर्ताओं को दिखने वाली सूचनाएं) का डेटा भी रिकॉर्ड होता है.

अगले चरण

फ़ोरग्राउंड में चलने वाले ऐप्लिकेशन पर मैसेज भेजें

ऐप्लिकेशन के बैकग्राउंड में होने पर, सूचना वाले मैसेज भेजने के बाद, फ़ोरग्राउंड में चलने वाले ऐप्लिकेशन पर मैसेज भेजने के लिए, Android ऐप्लिकेशन में मैसेज पाना देखें.

सूचना वाले मैसेज के अलावा अन्य सुविधाएं भी पाएं

सूचना वाले मैसेज के अलावा, अपने ऐप्लिकेशन में अन्य ऐडवांस सुविधाएं जोड़ने के लिए, इन्हें देखें: