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 प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर आपके ऐप को आपके प्रोजेक्ट में "जोड़ना" कहा जाता है।
फायरबेस कंसोल पर जाएं।
प्रोजेक्ट अवलोकन पृष्ठ के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए Android आइकन (
) या ऐप जोड़ें पर क्लिक करें।Android पैकेज नाम फ़ील्ड में अपने ऐप का पैकेज नाम दर्ज करें।
एक पैकेज नाम विशिष्ट रूप से डिवाइस और Google Play Store में आपके ऐप की पहचान करता है।
पैकेज नाम को अक्सर एप्लिकेशन आईडी के रूप में संदर्भित किया जाता है।
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल में अपने ऐप का पैकेज नाम खोजें, आमतौर पर
app/build.gradle
(उदाहरण पैकेज का नाम:com.yourcompany.yourproject
)।सावधान रहें कि पैकेज नाम का मान केस-संवेदी है, और इसे आपके Firebase प्रोजेक्ट के साथ पंजीकृत होने के बाद इस Firebase Android ऐप के लिए बदला नहीं जा सकता है।
(वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और डीबग हस्ताक्षर प्रमाणपत्र SHA-1 ।
ऐप का उपनाम : एक आंतरिक, सुविधा पहचानकर्ता जो केवल फायरबेस कंसोल में आपको दिखाई देता है
डीबग हस्ताक्षर प्रमाणपत्र SHA-1 : Firebase प्रमाणीकरण ( Google साइन इन या फ़ोन नंबर साइन इन का उपयोग करते समय) और Firebase डायनेमिक लिंक के लिए SHA-1 हैश आवश्यक है।
रजिस्टर ऐप पर क्लिक करें।
एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
डाउनलोड करें और फिर अपने ऐप में Firebase Android कॉन्फ़िगरेशन फ़ाइल (
) जोड़ें:google-services.json अपनी Firebase Android कॉन्फ़िगरेशन फ़ाइल प्राप्त करने के लिए google-services.json डाउनलोड करें पर क्लिक करें।
अपनी कॉन्फ़िगरेशन फ़ाइल को अपने ऐप के मॉड्यूल (ऐप-लेवल) रूट डायरेक्टरी में ले जाएँ।
फायरबेस कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए अद्वितीय, लेकिन गैर-गुप्त पहचानकर्ता शामिल हैं। इस कॉन्फ़िगरेशन फ़ाइल के बारे में अधिक जानने के लिए, Firebase Projects को समझें पर जाएं।
आप किसी भी समय अपनी फायरबेस कॉन्फ़िगरेशन फ़ाइल को दोबारा डाउनलोड कर सकते हैं।
सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल नाम अतिरिक्त वर्णों के साथ नहीं जोड़ा गया है, जैसे
(2)
.
अपनी
कॉन्फ़िग फ़ाइल में मानों को Firebase SDKs तक पहुँचाने के लिए, आपको Google services Gradle प्लगइन (google-services.json google-services
) की आवश्यकता है।अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल (
<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 } }
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
<project>/<app-module>/build.gradle
) में, Google सर्विसेज प्लगइन जोड़ें:plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
अपने ऐप में फायरबेस एसडीके जोड़ें
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
<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' }
अपने Android प्रोजेक्ट को ग्रेडल फ़ाइलों के साथ सिंक करें।
ग्रैडल बनाता है जो एंड्रॉइड ग्रैडल प्लगइन (एजीपी) v4.2 या इससे पहले जावा 8 समर्थन को सक्षम करने की आवश्यकता है। अन्यथा, Firebase SDK जोड़ते समय इन Android प्रोजेक्ट्स को बिल्ड विफलता मिलती है।
इस बिल्ड विफलता को ठीक करने के लिए, आप दो विकल्पों में से एक का अनुसरण कर सकते हैं:
- त्रुटि संदेश से सूचीबद्ध
compileOptions
अपनी ऐप-स्तरीयbuild.gradle
फ़ाइल में जोड़ें। - अपने Android प्रोजेक्ट के लिए
minSdkVersion
बढ़ाकर 26 या उससे ऊपर करें।
इस बिल्ड विफलता के बारे में इस अक्सर पूछे जाने वाले प्रश्न में अधिक जानें।
- त्रुटि संदेश से सूचीबद्ध
पंजीकरण टोकन तक पहुंचें
किसी विशिष्ट उपकरण को संदेश भेजने के लिए, आपको उस उपकरण के पंजीकरण टोकन को जानने की आवश्यकता है। चूंकि आपको इस ट्यूटोरियल को पूरा करने के लिए अधिसूचना कंसोल में एक फ़ील्ड में टोकन दर्ज करने की आवश्यकता होगी, टोकन को कॉपी करना सुनिश्चित करें या इसे पुनर्प्राप्त करने के बाद इसे सुरक्षित रूप से स्टोर करें।
आपके ऐप के आरंभिक स्टार्टअप पर, 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); }
टोकन प्राप्त करने के बाद, आप इसे अपने ऐप सर्वर पर भेज सकते हैं और अपनी पसंदीदा विधि का उपयोग करके इसे स्टोर कर सकते हैं।
एक परीक्षण अधिसूचना संदेश भेजें
ऐप को लक्ष्य डिवाइस पर इंस्टॉल करें और चलाएं। Apple उपकरणों पर, आपको दूरस्थ सूचनाएँ प्राप्त करने की अनुमति के अनुरोध को स्वीकार करना होगा।
सुनिश्चित करें कि ऐप डिवाइस पर पृष्ठभूमि में है।
Firebase कंसोल में, मैसेजिंग पेज खोलें।
यदि यह आपका पहला संदेश है, तो अपना पहला अभियान बनाएं चुनें.
- फायरबेस अधिसूचना संदेशों का चयन करें और बनाएं का चयन करें।
अन्यथा, अभियान टैब पर, नया अभियान और फिर सूचनाएं चुनें.
संदेश पाठ दर्ज करें। अन्य सभी क्षेत्र वैकल्पिक हैं।
दाएँ फलक से परीक्षण संदेश भेजें चुनें।
FCM पंजीकरण टोकन जोड़ें लेबल वाली फ़ील्ड में, पंजीकरण टोकन दर्ज करें जो आपने इस मार्गदर्शिका के पिछले अनुभाग में प्राप्त किया था।
परीक्षण का चयन करें।
आपके द्वारा टेस्ट का चयन करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को सूचना प्राप्त होनी चाहिए।
अपने ऐप पर संदेश वितरण की जानकारी के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें, जो Android ऐप्स के लिए "इंप्रेशन" (उपयोगकर्ताओं द्वारा देखी गई सूचनाएं) के डेटा के साथ-साथ Apple और Android उपकरणों पर भेजे गए और खोले गए संदेशों की संख्या को रिकॉर्ड करता है।
अगले कदम
अग्रभूमि वाले ऐप्स को संदेश भेजें
एक बार जब आपने अपने ऐप के पृष्ठभूमि में होने के दौरान सफलतापूर्वक सूचना संदेश भेज दिए, तो अग्रभूमि वाले ऐप्स को भेजना शुरू करने के लिए Android ऐप में संदेश प्राप्त करें देखें।
अधिसूचना संदेशों से परे जाएं
सूचना संदेशों से परे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: