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

Flutter पर एक फायरबेस क्लाउड मैसेजिंग क्लाइंट ऐप सेट करें

Flutter पर FCM क्लाइंट सेट करने के लिए इन चरणों का पालन करें।

प्लेटफ़ॉर्म-विशिष्ट सेटअप और आवश्यकताएं

कुछ आवश्यक कदम उस प्लेटफॉर्म पर निर्भर करते हैं जिसे आप लक्षित कर रहे हैं।

आईओएस+

Xcode में ऐप क्षमताओं को सक्षम करें

इससे पहले कि आपका एप्लिकेशन संदेश प्राप्त करना शुरू कर सके, आपको अपने Xcode प्रोजेक्ट में पुश सूचनाएँ और पृष्ठभूमि मोड सक्षम करने होंगे।

  1. अपना Xcode प्रोजेक्ट कार्यक्षेत्र खोलें ( ios/Runner.xcworkspace )।
  2. पुश सूचनाएं सक्षम करें
  3. बैकग्राउंड फ़ेच और रिमोट नोटिफिकेशन बैकग्राउंड एक्ज़ीक्यूशन मोड को सक्षम करें।

अपनी APN प्रमाणीकरण कुंजी अपलोड करें

इससे पहले कि आप FCM का उपयोग करें, अपना APN प्रमाणपत्र Firebase पर अपलोड करें। यदि आपके पास पहले से APN प्रमाणपत्र नहीं है, तो Apple Developer Member Center में एक प्रमाणपत्र बनाएं।

  1. फायरबेस कंसोल में अपने प्रोजेक्ट के अंदर, गियर आइकन का चयन करें, प्रोजेक्ट सेटिंग्स का चयन करें और फिर क्लाउड मैसेजिंग टैब का चयन करें।
  2. अपने विकास प्रमाण पत्र, अपने उत्पादन प्रमाण पत्र, या दोनों के लिए प्रमाणपत्र अपलोड करें बटन का चयन करें। कम से कम एक आवश्यक है।
  3. प्रत्येक प्रमाणपत्र के लिए, .p12 फ़ाइल का चयन करें, और पासवर्ड प्रदान करें, यदि कोई हो। सुनिश्चित करें कि इस प्रमाणपत्र की बंडल आईडी आपके ऐप की बंडल आईडी से मेल खाती है। सहेजें चुनें.

विधि स्विज़लिंग

Apple उपकरणों पर FCM फ़्लटर प्लगइन का उपयोग करने के लिए, आपको स्विज़लिंग विधि को अक्षम नहीं करना चाहिए। स्विज़लिंग की आवश्यकता है, और इसके बिना, FCM टोकन हैंडलिंग जैसी प्रमुख फायरबेस सुविधाएँ ठीक से काम नहीं करती हैं।

एंड्रॉयड

Google Play सेवाएं

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

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

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

वेब

FCM के साथ वेब क्रेडेंशियल्स कॉन्फ़िगर करें

FCM वेब इंटरफ़ेस समर्थित वेब पुश सेवाओं को अनुरोध भेजने के लिए अधिकृत करने के लिए "स्वैच्छिक अनुप्रयोग सर्वर पहचान," या "VAPID" कुंजी नामक वेब क्रेडेंशियल्स का उपयोग करता है। सूचनाओं को पुश करने के लिए अपने ऐप को सब्सक्राइब करने के लिए, आपको अपने फायरबेस प्रोजेक्ट के साथ चाबियों की एक जोड़ी को जोड़ना होगा। आप या तो एक नई कुंजी जोड़ी उत्पन्न कर सकते हैं या फायरबेस कंसोल के माध्यम से अपनी मौजूदा कुंजी जोड़ी आयात कर सकते हैं।

एक नई कुंजी जोड़ी उत्पन्न करें
  1. फायरबेस कंसोल सेटिंग्स फलक के क्लाउड मैसेजिंग टैब को खोलें और वेब कॉन्फ़िगरेशन अनुभाग पर स्क्रॉल करें।

  2. वेब पुश प्रमाणपत्र टैब में, जनरेट कुंजी युग्म क्लिक करें. कंसोल एक नोटिस प्रदर्शित करता है कि कुंजी जोड़ी उत्पन्न हुई थी, और सार्वजनिक कुंजी स्ट्रिंग और तारीख को जोड़ा गया प्रदर्शित करता है।

एक मौजूदा कुंजी जोड़ी आयात करें

यदि आपके पास एक मौजूदा कुंजी जोड़ी है जिसका आप पहले से ही अपने वेब ऐप के साथ उपयोग कर रहे हैं, तो आप इसे FCM में आयात कर सकते हैं ताकि आप FCM API के माध्यम से अपने मौजूदा वेब ऐप इंस्टेंस तक पहुंच सकें। कुंजियाँ आयात करने के लिए, आपके पास Firebase प्रोजेक्ट के लिए स्वामी-स्तर की पहुँच होनी चाहिए। अपनी मौजूदा सार्वजनिक और निजी कुंजी को बेस 64 URL सुरक्षित एन्कोडेड फ़ॉर्म में आयात करें:

  1. फायरबेस कंसोल सेटिंग्स फलक के क्लाउड मैसेजिंग टैब को खोलें और वेब कॉन्फ़िगरेशन अनुभाग पर स्क्रॉल करें।

  2. वेब पुश प्रमाणपत्र टैब में, लिंक टेक्स्ट ढूंढें और चुनें, "मौजूदा कुंजी जोड़ी आयात करें।"

  3. कुंजी युग्म आयात करें संवाद में, संबंधित फ़ील्ड में अपनी सार्वजनिक और निजी कुंजियाँ प्रदान करें और आयात करें पर क्लिक करें। कंसोल सार्वजनिक कुंजी स्ट्रिंग और जोड़ी गई तिथि प्रदर्शित करता है।

कुंजियों के प्रारूप और उन्हें उत्पन्न करने के तरीके के बारे में अधिक जानकारी के लिए, एप्लिकेशन सर्वर कुंजियाँ देखें।

एफसीएम प्लगइन स्थापित करें

  1. अगर आपने पहले से ऐसा नहीं किया है तो Flutter के लिए Firebase प्लगइन्स को इंस्टॉल और इनिशियलाइज़ करें

  2. अपने स्पंदन प्रोजेक्ट की जड़ से, प्लगइन स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

    flutter pub add firebase_messaging
    
  3. एक बार पूरा हो जाने पर, अपने स्पंदन एप्लिकेशन का पुनर्निर्माण करें:

    flutter run
    

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

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

ऐप इंस्टेंस के लिए वर्तमान पंजीकरण टोकन पुनर्प्राप्त करने के लिए, getToken() कॉल करें। यदि अधिसूचना अनुमति प्रदान नहीं की गई है, तो यह विधि उपयोगकर्ता से सूचना अनुमतियों के लिए पूछेगी। अन्यथा, यह एक टोकन लौटाता है या त्रुटि के कारण भविष्य को अस्वीकार करता है।

final fcmToken = await FirebaseMessaging.instance.getToken();

वेब प्लेटफॉर्म पर, अपनी VAPID सार्वजनिक कुंजी को getToken() पास करें:

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

जब भी टोकन अपडेट किया जाता है तो अधिसूचित होने के लिए, onTokenRefresh स्ट्रीम की सदस्यता लें:

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

ऑटो आरंभीकरण रोकें

जब एक FCM पंजीकरण टोकन उत्पन्न होता है, तो लाइब्रेरी पहचानकर्ता और कॉन्फ़िगरेशन डेटा को Firebase पर अपलोड करती है। यदि आप टोकन ऑटोजेनरेशन को रोकना चाहते हैं, तो बिल्ड समय पर ऑटो-इनिशियलाइज़ेशन को अक्षम करें।

आईओएस

iOS पर, अपने Info.plist में एक मेटाडेटा मान जोड़ें:

FirebaseMessagingAutoInitEnabled = NO

एंड्रॉयड

Android पर, इन मेटाडेटा मानों को अपने AndroidManifest.xml में जोड़कर Analytics संग्रह और FCM ऑटो आरंभीकरण अक्षम करें (आपको दोनों को अक्षम करना होगा):

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

रनटाइम पर FCM ऑटो-इनिट को पुन: सक्षम करें

किसी विशिष्ट ऐप इंस्टेंस के लिए ऑटो-इनिट को सक्षम करने के लिए, setAutoInitEnabled() पर कॉल करें:

await FirebaseMessaging.instance.setAutoInitEnabled(true);

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

अगले कदम

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

अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, आपको एक सर्वर कार्यान्वयन की आवश्यकता होगी।

फिर, आपके ऐप क्लाइंट में: