एफसीएम के साथ आरंभ करने के लिए, सबसे सरल उपयोग का मामला बनाएं: जब ऐप डिवाइस पर पृष्ठभूमि में हो तो नोटिफिकेशन कंपोजर से एक डेवलपमेंट डिवाइस पर एक परीक्षण अधिसूचना संदेश भेजना। यह पृष्ठ इसे प्राप्त करने के लिए सेटअप से सत्यापन तक सभी चरणों को सूचीबद्ध करता है - यदि आपने एफसीएम के लिए एंड्रॉइड क्लाइंट ऐप सेट अप किया है तो इसमें आपके द्वारा पहले ही पूरे किए गए चरण शामिल हो सकते हैं।
एसडीके सेट करें
यदि आपने पहले से ही अपने ऐप के लिए अन्य फायरबेस सुविधाओं को सक्षम कर लिया है तो यह अनुभाग आपके द्वारा पूरे किए जा सकने वाले कार्यों को शामिल करता है।
शुरू करने से पहले
एंड्रॉइड स्टूडियो को उसके नवीनतम संस्करण में इंस्टॉल या अपडेट करें।
सुनिश्चित करें कि आपका प्रोजेक्ट इन आवश्यकताओं को पूरा करता है:
- लक्ष्य एपीआई स्तर 19 (किटकैट) या उच्चतर
- एंड्रॉइड 4.4 या उच्चतर का उपयोग करता है
- Jetpack (AndroidX) का उपयोग करता है, जिसमें इन संस्करण आवश्यकताओं को पूरा करना शामिल है:
-
com.android.tools.build:gradle
v3.2.1 या बाद का संस्करण -
compileSdkVersion
28 या बाद का संस्करण
-
अपना ऐप चलाने के लिए एक भौतिक उपकरण सेट करें या एक एमुलेटर का उपयोग करें।
ध्यान दें कि Google Play सेवाओं पर निर्भरता वाले Firebase SDK के लिए डिवाइस या एमुलेटर में Google Play सेवाएं स्थापित होना आवश्यक है।अपने Google खाते का उपयोग करके फायरबेस में साइन इन करें ।
यदि आपके पास पहले से कोई एंड्रॉइड प्रोजेक्ट नहीं है और आप केवल फायरबेस उत्पाद आज़माना चाहते हैं, तो आप हमारे क्विकस्टार्ट नमूनों में से एक डाउनलोड कर सकते हैं।
एक फायरबेस प्रोजेक्ट बनाएं
इससे पहले कि आप अपने एंड्रॉइड ऐप में फायरबेस जोड़ सकें, आपको अपने एंड्रॉइड ऐप से कनेक्ट करने के लिए एक फायरबेस प्रोजेक्ट बनाना होगा। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए फायरबेस प्रोजेक्ट्स को समझें पर जाएँ।
अपने ऐप को फायरबेस के साथ पंजीकृत करें
अपने एंड्रॉइड ऐप में फायरबेस का उपयोग करने के लिए, आपको अपने ऐप को अपने फायरबेस प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर अपने ऐप को अपने प्रोजेक्ट में "जोड़ना" कहा जाता है।
फायरबेस कंसोल पर जाएं।
प्रोजेक्ट अवलोकन पृष्ठ के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए एंड्रॉइड आइकन (
) या ऐप जोड़ें पर क्लिक करें।एंड्रॉइड पैकेज नाम फ़ील्ड में अपने ऐप का पैकेज नाम दर्ज करें।
पैकेज का नाम डिवाइस और Google Play Store पर आपके ऐप की विशिष्ट पहचान करता है।
पैकेज नाम को अक्सर एप्लिकेशन आईडी के रूप में जाना जाता है।
अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में अपने ऐप के पैकेज का नाम ढूंढें, आमतौर पर
app/build.gradle
(उदाहरण पैकेज का नाम:com.yourcompany.yourproject
)।ध्यान रखें कि पैकेज नाम मान केस-संवेदी है, और इसे आपके फायरबेस प्रोजेक्ट के साथ पंजीकृत होने के बाद इस फायरबेस एंड्रॉइड ऐप के लिए नहीं बदला जा सकता है।
(वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और डीबग हस्ताक्षर प्रमाणपत्र SHA-1 ।
ऐप उपनाम : एक आंतरिक, सुविधाजनक पहचानकर्ता जो केवल आपको फायरबेस कंसोल में दिखाई देता है
डिबग हस्ताक्षर प्रमाणपत्र SHA-1 : फायरबेस प्रमाणीकरण ( Google साइन इन या फ़ोन नंबर साइन इन का उपयोग करते समय) और फायरबेस डायनेमिक लिंक के लिए SHA-1 हैश की आवश्यकता होती है।
ऐप रजिस्टर करें पर क्लिक करें.
एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
डाउनलोड करें और फिर अपने ऐप में फायरबेस एंड्रॉइड कॉन्फ़िगरेशन फ़ाइल (
) जोड़ें:google-services.json अपनी फायरबेस एंड्रॉइड कॉन्फ़िगरेशन फ़ाइल प्राप्त करने के लिए google-services.json डाउनलोड करें पर क्लिक करें।
अपनी कॉन्फ़िग फ़ाइल को अपने ऐप के मॉड्यूल (ऐप-स्तर) रूट डायरेक्टरी में ले जाएँ।
फायरबेस कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए अद्वितीय, लेकिन गैर-गुप्त पहचानकर्ता शामिल हैं। इस कॉन्फ़िगरेशन फ़ाइल के बारे में अधिक जानने के लिए, फ़ायरबेस प्रोजेक्ट्स को समझें पर जाएँ।
आप किसी भी समय अपनी फायरबेस कॉन्फ़िगरेशन फ़ाइल को दोबारा डाउनलोड कर सकते हैं।
सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल नाम अतिरिक्त वर्णों, जैसे
(2)
के साथ नहीं जोड़ा गया है।
अपनी
कॉन्फ़िग फ़ाइल के मानों को Firebase SDKs तक पहुंच योग्य बनाने के लिए, आपको Google Services Gradle प्लगइन (google-services.json google-services
) की आवश्यकता होगी।अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल (
<project>/build.gradle.kts
या<project>/build.gradle
) में, निर्भरता के रूप में Google सेवा प्लगइन जोड़ें:Kotlin
plugins { id("com.android.application") version "7.2.0" apply false // ... // Add the dependency for the Google services Gradle plugin id("com.google.gms.google-services") version "4.3.15" apply false }
Groovy
plugins { id 'com.android.application' version '7.2.0' apply false // ... // Add the dependency for the Google services Gradle plugin id 'com.google.gms.google-services' version '4.3.15' apply false }
अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
), Google सेवाएं प्लगइन जोड़ें:Kotlin
plugins { id("com.android.application") // Add the Google services Gradle plugin id("com.google.gms.google-services") // ... }
Groovy
plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' // ... }
अपने ऐप में फायरबेस एसडीके जोड़ें
अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
), फायरबेस क्लाउड के लिए निर्भरता जोड़ें मैसेजिंग एंड्रॉइड लाइब्रेरी। हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड BoM का उपयोग करने की सलाह देते हैं।फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम आपके फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करने और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ने की सलाह देते हैं।
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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") }
फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।
(वैकल्पिक) BoM का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता पंक्ति में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की दृढ़ता से अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
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.2.1") implementation("com.google.firebase:firebase-analytics-ktx:21.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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") }
फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।
(वैकल्पिक) BoM का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता पंक्ति में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की दृढ़ता से अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
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.2.1") implementation("com.google.firebase:firebase-analytics:21.3.0") }
अपने एंड्रॉइड प्रोजेक्ट को ग्रैडल फ़ाइलों के साथ सिंक करें।
ग्रैडल बिल्ड जो एंड्रॉइड ग्रैडल प्लगइन (एजीपी) v4.2 या इससे पहले के संस्करण का उपयोग करता है उसे जावा 8 समर्थन सक्षम करने की आवश्यकता होती है। अन्यथा, फायरबेस एसडीके जोड़ते समय इन एंड्रॉइड प्रोजेक्ट्स को बिल्ड विफलता मिलती है।
इस बिल्ड विफलता को ठीक करने के लिए, आप दो विकल्पों में से एक का पालन कर सकते हैं:
- त्रुटि संदेश से सूचीबद्ध
compileOptions
अपने ऐप-स्तरीयbuild.gradle.kts
याbuild.gradle
फ़ाइल में जोड़ें। - अपने Android प्रोजेक्ट के लिए
minSdk
26 या उससे अधिक तक बढ़ाएँ।
इस FAQ में इस निर्माण विफलता के बारे में और जानें।
- त्रुटि संदेश से सूचीबद्ध
पंजीकरण टोकन तक पहुंचें
किसी विशिष्ट डिवाइस पर संदेश भेजने के लिए, आपको उस डिवाइस का पंजीकरण टोकन जानना होगा। क्योंकि इस ट्यूटोरियल को पूरा करने के लिए आपको नोटिफिकेशन कंसोल में एक फ़ील्ड में टोकन दर्ज करना होगा, टोकन को पुनः प्राप्त करने के बाद उसे कॉपी करना या सुरक्षित रूप से संग्रहीत करना सुनिश्चित करें।
आपके ऐप के प्रारंभिक स्टार्टअप पर, एफसीएम एसडीके क्लाइंट ऐप इंस्टेंस के लिए एक पंजीकरण टोकन उत्पन्न करता है। यदि आप एकल डिवाइस को लक्षित करना चाहते हैं या डिवाइस समूह बनाना चाहते हैं, तो आपको 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 उपकरणों पर, आपको दूरस्थ सूचनाएं प्राप्त करने की अनुमति के लिए अनुरोध स्वीकार करना होगा।
सुनिश्चित करें कि ऐप डिवाइस के बैकग्राउंड में है।
फायरबेस कंसोल में, मैसेजिंग पेज खोलें।
यदि यह आपका पहला संदेश है, तो अपना पहला अभियान बनाएं चुनें.
- फायरबेस अधिसूचना संदेश चुनें और बनाएं चुनें।
अन्यथा, अभियान टैब पर, नया अभियान और फिर सूचनाएं चुनें।
संदेश पाठ दर्ज करें. अन्य सभी फ़ील्ड वैकल्पिक हैं.
दाएँ फलक से परीक्षण संदेश भेजें का चयन करें।
FCM पंजीकरण टोकन जोड़ें लेबल वाले फ़ील्ड में, इस गाइड के पिछले अनुभाग में प्राप्त पंजीकरण टोकन दर्ज करें।
परीक्षण का चयन करें.
आपके द्वारा परीक्षण का चयन करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को अधिसूचना प्राप्त होनी चाहिए।
अपने ऐप पर संदेश वितरण की जानकारी के लिए, एफसीएम रिपोर्टिंग डैशबोर्ड देखें, जो ऐप्पल और एंड्रॉइड डिवाइस पर भेजे गए और खोले गए संदेशों की संख्या को रिकॉर्ड करता है, साथ ही एंड्रॉइड ऐप के लिए "इंप्रेशन" (उपयोगकर्ताओं द्वारा देखी गई सूचनाएं) के डेटा को भी रिकॉर्ड करता है।
अगले कदम
अग्रभूमि ऐप्स को संदेश भेजें
एक बार जब आपका ऐप पृष्ठभूमि में हो तब आपने सफलतापूर्वक अधिसूचना संदेश भेज दिए हों, तो अग्रभूमि वाले ऐप्स पर भेजना शुरू करने के लिए एंड्रॉइड ऐप में संदेश प्राप्त करें देखें।
अधिसूचना संदेशों से आगे बढ़ें
अधिसूचना संदेशों से आगे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: