Check out what’s new from Firebase at Google I/O 2022. Learn more

एक पृष्ठभूमि वाले ऐप को एक परीक्षण संदेश भेजें

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

एसडीके सेट करें

इस अनुभाग में उन कार्यों को शामिल किया गया है जिन्हें आपने पूरा किया हो सकता है यदि आपने अपने ऐप के लिए अन्य Firebase सुविधाओं को पहले ही सक्षम कर दिया है।

शुरू करने से पहले

  • Android Studio को उसके नवीनतम संस्करण में इंस्टॉल या अपडेट करें।

  • सुनिश्चित करें कि आपकी परियोजना इन आवश्यकताओं को पूरा करती है:

    • लक्ष्य API स्तर 19 (किटकैट) या उच्चतर
    • Android 4.4 या उच्चतर का उपयोग करता है
    • Jetpack (AndroidX) का उपयोग करता है, जिसमें इन संस्करण आवश्यकताओं को पूरा करना शामिल है:
      • com.android.tools.build:gradle v3.2.1 या बाद का संस्करण
      • compileSdkVersion 28 या बाद में
  • एक भौतिक उपकरण सेट करें या अपना ऐप चलाने के लिए एक एमुलेटर का उपयोग करें।
    ध्यान दें कि Google Play सेवाओं पर निर्भरता वाले Firebase SDK के लिए Google Play सेवाओं को स्थापित करने के लिए डिवाइस या एमुलेटर की आवश्यकता होती है।

  • अपने Google खाते का उपयोग करके Firebase में साइन इन करें

यदि आपके पास पहले से कोई Android प्रोजेक्ट नहीं है और आप केवल Firebase उत्पाद आज़माना चाहते हैं, तो आप हमारे त्वरित प्रारंभ नमूनों में से एक को डाउनलोड कर सकते हैं।

एक फायरबेस प्रोजेक्ट बनाएं

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

अपने ऐप को Firebase के साथ पंजीकृत करें

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

  1. फायरबेस कंसोल पर जाएं।

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

  3. Android पैकेज नाम फ़ील्ड में अपने ऐप का पैकेज नाम दर्ज करें।

  4. (वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और डीबग हस्ताक्षर प्रमाणपत्र SHA-1

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

एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें

  1. अपने ऐप्लिकेशन में Firebase Android कॉन्फ़िगरेशन फ़ाइल जोड़ें:

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

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

  2. अपने ऐप में फायरबेस उत्पादों को सक्षम करने के लिए, अपनी ग्रेडल फाइलों में google-services प्लगइन जोड़ें।

    1. अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल ( build.gradle ) में, Google Services 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.10'  // 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 Services Gradle प्लगइन लागू करें:

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

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

  1. फायरबेस एंड्रॉइड बीओएम का उपयोग करके, अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर app/build.gradle ) में फायरबेस क्लाउड मैसेजिंग एंड्रॉइड लाइब्रेरी के लिए निर्भरता की घोषणा करें।

    फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम अनुशंसा करते हैं कि आप अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करें और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ें।

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.0.2')
    
        // Declare 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'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें

    यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।

    ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।

    dependencies {
        // Declare 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:23.0.5'
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.0.2')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें

    यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।

    ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।

    dependencies {
        // Declare 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-ktx:23.0.5'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
    }
    

  2. यह सुनिश्चित करने के लिए अपने ऐप को सिंक करें कि सभी निर्भरताओं के आवश्यक संस्करण हैं।

पंजीकरण टोकन तक पहुंचें

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

आपके ऐप के आरंभिक स्टार्टअप पर, FCM SDK क्लाइंट ऐप इंस्टेंस के लिए एक पंजीकरण टोकन जेनरेट करता है। यदि आप एकल उपकरणों को लक्षित करना चाहते हैं या उपकरण समूह बनाना चाहते हैं, तो आपको FirebaseMessagingService का विस्तार करके और onNewToken को ओवरराइड करके इस टोकन तक पहुंचने की आवश्यकता होगी।

यह खंड बताता है कि टोकन कैसे प्राप्त करें और टोकन में परिवर्तनों की निगरानी कैसे करें। चूंकि टोकन प्रारंभिक स्टार्टअप के बाद घुमाया जा सकता है, इसलिए आपको नवीनतम अद्यतन पंजीकरण टोकन पुनर्प्राप्त करने की जोरदार अनुशंसा की जाती है।

पंजीकरण टोकन तब बदल सकता है जब:

  • ऐप को एक नए डिवाइस पर पुनर्स्थापित किया गया है
  • उपयोगकर्ता ऐप को अनइंस्टॉल/रीइंस्टॉल करता है
  • उपयोगकर्ता ऐप डेटा साफ़ करता है।

वर्तमान पंजीकरण टोकन प्राप्त करें

जब आपको वर्तमान टोकन प्राप्त करने की आवश्यकता हो, तो FirebaseMessaging.getInstance().getToken() पर कॉल करें:

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

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

टोकन पीढ़ी की निगरानी करें

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

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

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)
}

टोकन प्राप्त करने के बाद, आप इसे अपने ऐप सर्वर पर भेज सकते हैं और अपनी पसंदीदा विधि का उपयोग करके इसे स्टोर कर सकते हैं।

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

  1. लक्ष्य डिवाइस पर ऐप इंस्टॉल करें और चलाएं।

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

  3. नोटिफिकेशन कंपोजर खोलें और न्यू नोटिफिकेशन चुनें।

  4. संदेश पाठ दर्ज करें।

  5. परीक्षण संदेश भेजें चुनें.

  6. FCM पंजीकरण टोकन जोड़ें लेबल वाली फ़ील्ड में, इस मार्गदर्शिका के पिछले अनुभाग में प्राप्त पंजीकरण टोकन दर्ज करें।

  7. परीक्षण पर क्लिक करें

आपके द्वारा परीक्षण पर क्लिक करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को सिस्टम नोटिफिकेशन ट्रे में सूचना प्राप्त होनी चाहिए।

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

अगले कदम

अग्रभूमि ऐप्स को संदेश भेजें

एक बार जब आप अपने ऐप के बैकग्राउंड में नोटिफिकेशन मैसेज सफलतापूर्वक भेज देते हैं, तो फोरग्राउंडेड ऐप को भेजना शुरू करने के लिए एंड्रॉइड ऐप में रिसीव मैसेज देखें।

अधिसूचना संदेशों से परे जाएं

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