Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Android पर Firebase क्लाउड मैसेजिंग क्लाइंट ऐप सेट करें

अपने Firebase क्लाउड संदेश एंड्रॉयड क्लाइंट ऐप के बारे में करने के लिए, का उपयोग FirebaseMessaging एपीआई और एंड्रॉयड स्टूडियो 1.4 या उच्चतर Gradle साथ। इस पृष्ठ पर निर्देश मानते हैं कि आप के लिए चरण पूरे कर लिए अपने Android परियोजना के लिए Firebase जोड़ने

FCM क्लाइंट को Android 4.1 या उसके बाद वाले वर्शन पर चलने वाले डिवाइस की आवश्यकता होती है जिसमें Google Play Store ऐप भी इंस्टॉल हो, या Google API के साथ Android 4.1 चलाने वाला एमुलेटर हो। ध्यान दें कि आप Google Play Store के माध्यम से अपने Android ऐप्स को परिनियोजित करने तक सीमित नहीं हैं।

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

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

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

  • स्थापित करने या अपडेट एंड्रॉयड स्टूडियो अपने नवीनतम संस्करण के लिए।

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

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

  • Firebase में प्रवेश करें अपने Google खाते का उपयोग कर।

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

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

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

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

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

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

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

  3. Android पैकेज का नाम क्षेत्र में अपने ऐप का पैकेज नाम दर्ज करें।

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

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

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

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

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

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

  2. आपके एप्लिकेशन में Firebase उत्पादों को सक्षम करने के जोड़ने प्लगइन गूगल सेवाओं अपने Gradle फ़ाइलों के लिए।

    1. अपने रूट स्तर (परियोजना स्तरीय) Gradle फ़ाइल (में build.gradle ), Google सेवाओं के 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. अपने मॉड्यूल (एप्लिकेशन-स्तरीय) Gradle फ़ाइल (आमतौर पर में app/build.gradle ), Google सेवाओं के Gradle प्लगइन लागू होते हैं:

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

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

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

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

    जावा

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

    का उपयोग करके Firebase एंड्रॉयड बीओएम , अपने अनुप्रयोग हमेशा Firebase एंड्रॉयड पुस्तकालयों के संगत संस्करणों का प्रयोग करेंगे।

    (वैकल्पिक) बीओएम का उपयोग किए बिना Firebase पुस्तकालय निर्भरता घोषित

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

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

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

    कोटलिन + केटीएक्स

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

    का उपयोग करके Firebase एंड्रॉयड बीओएम , अपने अनुप्रयोग हमेशा Firebase एंड्रॉयड पुस्तकालयों के संगत संस्करणों का प्रयोग करेंगे।

    (वैकल्पिक) बीओएम का उपयोग किए बिना Firebase पुस्तकालय निर्भरता घोषित

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

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

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

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

अपना ऐप मेनिफेस्ट संपादित करें

अपने ऐप के मेनिफेस्ट में निम्नलिखित जोड़ें:

  • एक सेवा है कि फैली FirebaseMessagingService । यह आवश्यक है यदि आप पृष्ठभूमि में ऐप्स पर सूचनाएं प्राप्त करने के अलावा कोई संदेश प्रबंधन करना चाहते हैं। अग्रभूमि ऐप्स में सूचनाएं प्राप्त करने के लिए, डेटा पेलोड प्राप्त करने के लिए, अपस्ट्रीम संदेश भेजने के लिए, और इसी तरह, आपको इस सेवा का विस्तार करना होगा।
  • <service
        android:name=".java.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
  • (वैकल्पिक) एप्लिकेशन घटक के भीतर, मेटाडेटा तत्व एक डिफ़ॉल्ट अधिसूचना आइकन और रंग सेट करने के लिए। एंड्रॉइड इन मानों का उपयोग तब करता है जब आने वाले संदेश स्पष्ट रूप से आइकन या रंग सेट नहीं करते हैं।
  • <!-- 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" />
  • (वैकल्पिक) एंड्रॉयड 8.0 (एपीआई स्तर 26) और उच्च से, अधिसूचना चैनलों का समर्थन किया और सिफारिश की है। FCM मूलभूत सेटिंग्स के साथ एक डिफ़ॉल्ट सूचना चैनल प्रदान करता है। आप पसंद करते हैं बनाने के लिए और अपने खुद डिफ़ॉल्ट चैनल का उपयोग करें, सेट default_notification_channel_id दिखाया गया है अपनी अधिसूचना चैनल वस्तु की आईडी के लिए; FCM इस मान का उपयोग तब करेगा जब आने वाले संदेश स्पष्ट रूप से एक अधिसूचना चैनल सेट नहीं करेंगे। अधिक जानने के लिए, अधिसूचना चैनल प्रबंधित
  • <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />

डिवाइस पंजीकरण टोकन तक पहुंचें

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

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

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

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

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

जब आप वर्तमान टोकन प्राप्त करने की जरूरत है, फोन FirebaseMessaging.getInstance().getToken() :

जावा

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

कोटलिन + केटीएक्स

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 कॉलबैक आग जब भी नया टोकन उत्पन्न होता है।

जावा

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

कोटलिन + केटीएक्स

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

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

Google Play सेवाओं की जांच करें

Play Services SDK पर भरोसा करने वाले ऐप्स को Google Play सेवाओं की सुविधाओं तक पहुंचने से पहले डिवाइस को हमेशा संगत Google Play सेवाओं APK के लिए जांचना चाहिए। यह दो स्थानों पर यह करने के लिए सिफारिश की है: मुख्य गतिविधि के दशक में onCreate() विधि है, और अपने में onResume() विधि। चेक-इन के onCreate() सुनिश्चित करता है कि एप्लिकेशन एक सफल जाँच के बिना नहीं किया जा सकता। चेक-इन के onResume() सुनिश्चित करता है उपयोगकर्ता जैसे बैक बटन के माध्यम से ही कुछ अन्य साधनों के माध्यम से चल रहे एप्लिकेशन के लिए रिटर्न, जैसे चेक अभी भी किया जाता है, तो यह है कि।

डिवाइस Google Play सेवाओं की एक संगत संस्करण नहीं है, तो अपने अनुप्रयोग कॉल कर सकते हैं GoogleApiAvailability.makeGooglePlayServicesAvailable() उन प्ले स्टोर से Google Play सेवाओं के डाउनलोड करने के लिए अनुमति देने के लिए।

ऑटो इनिशियलाइज़ेशन रोकें

जब एक FCM पंजीकरण टोकन उत्पन्न होता है, तो लाइब्रेरी पहचानकर्ता और कॉन्फ़िगरेशन डेटा को Firebase पर अपलोड करती है। आप टोकन autogeneration, अक्षम Analytics संग्रहण और FCM ऑटो आरंभीकरण को रोकने के लिए पसंद करते हैं (आप दोनों को अक्षम करना होगा) अपने को इन मेटाडाटा मान जोड़कर 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" />

FCM ऑटो-इनिट को फिर से सक्षम करने के लिए, रनटाइम कॉल करें:

जावा

FirebaseMessaging.getInstance().setAutoInitEnabled(true);

कोटलिन + केटीएक्स

Firebase.messaging.isAutoInitEnabled = true

Analytics संग्रहण करने के लिए पुन: सक्षम, फोन setAnalyticsCollectionEnabled() की विधि FirebaseAnalytics वर्ग। उदाहरण के लिए:

setAnalyticsCollectionEnabled(true);

ये मान एक बार सेट होने के बाद ऐप के पुनरारंभ होने पर बने रहते हैं।

अगला कदम

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

अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, आप एक इंटेंट फ़िल्टर घोषित कर सकते हैं और आने वाले संदेशों का जवाब देने के लिए एक गतिविधि लागू कर सकते हैं। विवरण के लिए, ऐप सर्वर से संदेश भेजने के लिए मार्गदर्शिकाएँ देखें:

ध्यान रखें कि, इन सुविधाओं का लाभ लेने के लिए, आप एक की आवश्यकता होगी सर्वर कार्यान्वयन और सर्वर procotols (HTTP या XMPP), या के एक कार्यान्वयन नियंत्रक SDK