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

फ़्लटर पर FCM क्लाइंट स्थापित करने के लिए इन चरणों का पालन करें।

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

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

आईओएस+

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

इससे पहले कि आपका एप्लिकेशन संदेश प्राप्त करना शुरू कर सके, आपको अपने Xcode प्रोजेक्ट में पुश नोटिफिकेशन और बैकग्राउंड मोड सक्षम करना होगा।

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

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

एफसीएम का उपयोग करने से पहले, अपना एपीएन प्रमाणपत्र फायरबेस पर अपलोड करें। यदि आपके पास पहले से APN प्रमाणपत्र नहीं है, तो Apple डेवलपर सदस्य केंद्र में एक बनाएं।

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

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

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

एंड्रॉयड

गूगल प्ले सेवाएँ

एफसीएम क्लाइंट को एंड्रॉइड 4.4 या उच्चतर पर चलने वाले उपकरणों की आवश्यकता होती है जिसमें Google Play सेवाएं भी स्थापित होती हैं, या Google एपीआई के साथ एंड्रॉइड 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() कॉल कर सकता है।

वेब

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

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

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

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

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

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

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

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

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

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

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

  1. यदि आपने पहले से ऐसा नहीं किया है तो फ़्लटर के लिए फ़ायरबेस प्लगइन्स इंस्टॉल और प्रारंभ करें

  2. अपने फ़्लटर प्रोजेक्ट के रूट से, प्लगइन इंस्टॉल करने के लिए निम्न कमांड चलाएँ:

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

    flutter run
    

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

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

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

// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);

// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
 // APNS token is available, make FCM plugin API requests...
}

वेब प्लेटफ़ॉर्म पर, अपनी 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.
    });

स्वतः आरंभीकरण रोकें

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

आईओएस

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

FirebaseMessagingAutoInitEnabled = NO

एंड्रॉयड

एंड्रॉइड पर, इन मेटाडेटा मानों को अपने AndroidManifest.xml में जोड़कर एनालिटिक्स संग्रह और 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);

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

अगले कदम

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

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

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