了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. अपनी google-services.json कॉन्फ़िग फ़ाइल में मानों को Firebase SDKs तक पहुँचाने के लिए, आपको Google services Gradle प्लगइन ( google-services ) की आवश्यकता है।

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

      buildscript {
      
          repositories {
            // Make sure that you have the following two repositories
            google()  // Google's Maven repository
            mavenCentral()  // Maven Central repository
          }
      
          dependencies {
            ...
      
            // Add the dependency for the Google services Gradle plugin
            classpath 'com.google.gms:google-services:4.3.15'
          }
      }
      
      allprojects {
        ...
      
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
      }
      
    2. अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle ) में, Google सर्विसेज प्लगइन जोड़ें:

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

अपने ऐप में फायरबेस एसडीके जोड़ें

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

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

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:32.1.0')
    
        // 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 लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।

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

    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:23.1.2'
        implementation 'com.google.firebase:firebase-analytics:21.3.0'
    }
    

    Kotlin+KTX

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

    Firebase Android BoM का उपयोग करके, आपका ऐप हमेशा Firebase Android पुस्तकालयों के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM का उपयोग किए बिना Firebase लाइब्रेरी निर्भरताएँ जोड़ें

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

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

    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-ktx:23.1.2'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0'
    }
    

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

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

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

आपके ऐप के आरंभिक स्टार्टअप पर, 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. फायरबेस अधिसूचना संदेशों का चयन करें और बनाएं का चयन करें।
  5. अन्यथा, अभियान टैब पर, नया अभियान और फिर सूचनाएं चुनें.

  6. संदेश पाठ दर्ज करें। अन्य सभी क्षेत्र वैकल्पिक हैं।

  7. दाएँ फलक से परीक्षण संदेश भेजें चुनें।

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

  9. परीक्षण का चयन करें।

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

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

अगले कदम

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

एक बार जब आपने अपने ऐप के पृष्ठभूमि में होने के दौरान सफलतापूर्वक सूचना संदेश भेज दिए, तो अग्रभूमि वाले ऐप्स को भेजना शुरू करने के लिए Android ऐप में संदेश प्राप्त करें देखें।

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

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