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 प्रोजेक्ट के साथ पंजीकृत करना होगा. अपने ऐप को पंजीकृत करने को अक्सर अपने प्रोजेक्ट में अपने ऐप को "जोड़ना" कहा जाता है।
फायरबेस कंसोल पर जाएं।
प्रोजेक्ट ओवरव्यू पेज के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए Android आइकन (
) या ऐप जोड़ें पर क्लिक करें।Android पैकेज नाम फ़ील्ड में अपने ऐप का पैकेज नाम दर्ज करें।
पैकेज का नाम डिवाइस पर और Google Play Store में आपके ऐप की विशिष्ट रूप से पहचान करता है।
पैकेज नाम को अक्सर एप्लिकेशन आईडी के रूप में संदर्भित किया जाता है।
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल में अपने ऐप के पैकेज का नाम खोजें, आमतौर पर
app/build.gradle
(उदाहरण पैकेज का नाम:com.yourcompany.yourproject
)।ध्यान रखें कि पैकेज नाम का मान केस-संवेदी होता है, और आपके Firebase प्रोजेक्ट के साथ पंजीकृत होने के बाद इसे इस Firebase Android ऐप के लिए बदला नहीं जा सकता है।
(वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और डीबग हस्ताक्षर प्रमाणपत्र SHA-1 ।
ऐप का प्रचलित नाम : एक आंतरिक, सुविधा पहचानकर्ता जो केवल आपको Firebase कंसोल में दिखाई देता है
डिबग साइनिंग सर्टिफिकेट SHA-1 : फायरबेस ऑथेंटिकेशन ( Google साइन इन या फोन नंबर साइन इन का उपयोग करते समय) और फायरबेस डायनेमिक लिंक्स द्वारा SHA-1 हैश की आवश्यकता होती है।
रजिस्टर ऐप पर क्लिक करें।
एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
अपने ऐप्लिकेशन में Firebase Android कॉन्फ़िगरेशन फ़ाइल जोड़ें:
अपनी Firebase Android कॉन्फ़िग फ़ाइल (
) प्राप्त करने के लिए google-services.json डाउनलोड करें पर क्लिक करें।google-services.json अपनी कॉन्फ़िगरेशन फ़ाइल को अपने ऐप के मॉड्यूल (ऐप-स्तर) निर्देशिका में ले जाएं।
फायरबेस कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए अद्वितीय, लेकिन गैर-गुप्त पहचानकर्ता हैं। इस कॉन्फ़िग फ़ाइल के बारे में अधिक जानने के लिए, फायरबेस प्रोजेक्ट्स को समझें पर जाएं।
आप अपनी Firebase कॉन्फ़िग फ़ाइल को किसी भी समय फिर से डाउनलोड कर सकते हैं।
सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल नाम अतिरिक्त वर्णों के साथ नहीं जोड़ा गया है, जैसे
(2)
।
अपने ऐप में फायरबेस उत्पादों को सक्षम करने के लिए, अपनी ग्रेडल फाइलों में google-services प्लगइन जोड़ें।
अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल (
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.13' // Google Services plugin } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
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 टूल जोड़ें
फायरबेस एंड्रॉइड बीओएम का उपयोग करके, अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
app/build.gradle
) में फायरबेस क्लाउड मैसेजिंग एंड्रॉइड लाइब्रेरी के लिए निर्भरता की घोषणा करें।फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम अनुशंसा करते हैं कि आप अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करें और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ें।
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // 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.6' 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.1.0') // 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.6' implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0' }
यह सुनिश्चित करने के लिए अपने ऐप को सिंक करें कि सभी निर्भरताओं के आवश्यक संस्करण हैं।
ग्रैडल बनाता है जो एंड्रॉइड ग्रैडल प्लगइन (एजीपी) v4.2 का उपयोग करता है या इससे पहले जावा 8 समर्थन को सक्षम करने की आवश्यकता होती है। अन्यथा, फायरबेस एसडीके जोड़ते समय इन एंड्रॉइड प्रोजेक्ट्स को बिल्ड विफलता मिलती है।
इस बिल्ड विफलता को ठीक करने के लिए, आप दो विकल्पों में से एक का अनुसरण कर सकते हैं:
- अपने ऐप-लेवल
build.gradle
फ़ाइल में एरर मैसेज से लिस्टेडcompileOptions
जोड़ें। - अपने Android प्रोजेक्ट के लिए
minSdkVersion
को बढ़ाकर 26 या उससे ऊपर करें।
इस अक्सर पूछे जाने वाले प्रश्न में इस बिल्ड विफलता के बारे में और जानें।
- अपने ऐप-लेवल
पंजीकरण टोकन तक पहुंचें
किसी विशिष्ट डिवाइस पर संदेश भेजने के लिए, आपको उस डिवाइस के पंजीकरण टोकन को जानना होगा। चूंकि आपको इस ट्यूटोरियल को पूरा करने के लिए सूचना कंसोल में एक फ़ील्ड में टोकन दर्ज करना होगा, इसलिए टोकन को कॉपी करना सुनिश्चित करें या इसे पुनर्प्राप्त करने के बाद इसे सुरक्षित रूप से संग्रहीत करें।
आपके ऐप के आरंभिक स्टार्टअप पर, 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(@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); }
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) }
टोकन प्राप्त करने के बाद, आप इसे अपने ऐप सर्वर पर भेज सकते हैं और अपनी पसंदीदा विधि का उपयोग करके इसे स्टोर कर सकते हैं।
एक परीक्षण सूचना संदेश भेजें
लक्ष्य डिवाइस पर ऐप इंस्टॉल करें और चलाएं।
सुनिश्चित करें कि ऐप डिवाइस के बैकग्राउंड में है।
नोटिफिकेशन कंपोजर खोलें और न्यू नोटिफिकेशन चुनें।
संदेश पाठ दर्ज करें।
परीक्षण संदेश भेजें चुनें.
FCM पंजीकरण टोकन जोड़ें लेबल वाली फ़ील्ड में, इस मार्गदर्शिका के पिछले अनुभाग में प्राप्त पंजीकरण टोकन दर्ज करें।
परीक्षण पर क्लिक करें
आपके द्वारा परीक्षण पर क्लिक करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को सिस्टम नोटिफिकेशन ट्रे में सूचना प्राप्त होनी चाहिए।
अपने ऐप पर संदेश वितरण में अंतर्दृष्टि के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें, जो Android ऐप्स के लिए "इंप्रेशन" (उपयोगकर्ताओं द्वारा देखी गई सूचनाएं) के डेटा के साथ-साथ Apple और Android उपकरणों पर भेजे और खोले गए संदेशों की संख्या को रिकॉर्ड करता है।
अगले कदम
अग्रभूमि ऐप्स को संदेश भेजें
एक बार जब आप अपने ऐप के बैकग्राउंड में नोटिफिकेशन मैसेज सफलतापूर्वक भेज देते हैं, तो फोरग्राउंडेड ऐप को भेजना शुरू करने के लिए एंड्रॉइड ऐप में रिसीव मैसेज देखें।
अधिसूचना संदेशों से परे जाएं
अधिसूचना संदेशों से परे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: