Flutter पर Firebase क्लाउड से मैसेज वाला क्लाइंट ऐप्लिकेशन सेट अप करना

Flutter पर FCM क्लाइंट सेट अप करने के लिए यह तरीका अपनाएं.

प्लैटफ़ॉर्म के हिसाब से सेटअप और ज़रूरी शर्तें

इनमें से कुछ ज़रूरी चरण, उस प्लैटफ़ॉर्म के हिसाब से तय होते हैं जिसे टारगेट किया जा रहा है.

iOS और उसके बाद के वर्शन

Xcode में ऐप्लिकेशन की क्षमताएं चालू करें

आपके ऐप्लिकेशन को मैसेज पाना शुरू करने से पहले, आपको पुश चालू करना होगा सूचनाएं और बैकग्राउंड मोड चालू करें.

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

अपने एपीएन की पुष्टि करने वाली कुंजी अपलोड करें

FCM का इस्तेमाल करने से पहले, अपने एपीएन सर्टिफ़िकेट Firebase पर अपलोड करें. अगर आपको आपके पास पहले से ही एक एपीएन सर्टिफ़िकेट है, तो Apple Developer सदस्य केंद्र.

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

स्विज़लिंग मेथड

Apple डिवाइसों पर FCM Flutter प्लगिन का इस्तेमाल करने के लिए, आपको यह तरीका बंद नहीं करना चाहिए हिलते-डुलते रहते हैं. स्विज़लिंग ज़रूरी है और इसके बिना, Firebase की कुछ मुख्य सुविधाएं, जैसे कि FCM टोकन हैंडलिंग ठीक से काम नहीं कर रही है.

Android

Google Play सेवाएं

FCM क्लाइंट को Android 4.4 या उसके बाद के वर्शन वाले डिवाइस की ज़रूरत होती है, जिनमें Google भी हो Play services इंस्टॉल की गई है या Google API के साथ Android 4.4 पर चलने वाला एम्युलेटर. ध्यान दें कि आप सिर्फ़ Google Play से अपने Android ऐप्लिकेशन डिप्लॉय कर सकते हैं स्टोर.

Play Services SDK टूल का इस्तेमाल करने वाले ऐप्लिकेशन को डिवाइस में मौजूद Google Play services का इस्तेमाल करने से पहले, Google Play services का इस्तेमाल किया जा सकने वाला APK सुविधाएँ. ऐसा करने की सलाह दो जगहों पर दी जाती है: मुख्य गतिविधि के onCreate() तरीका और इसकी onResume() तरीके में. onCreate() में चेक इन यह पक्का करती है कि जांच के बिना ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता. सुरक्षा जांच onResume() यह पक्का करता है कि उपयोगकर्ता कुछ 'वापस जाएं' बटन जैसे दूसरे तरीकों से भी जांच की जा रही है.

अगर डिवाइस में Google Play services का साथ काम करने वाला वर्शन नहीं है, तो ऐप्लिकेशन GoogleApiAvailability.makeGooglePlayServicesAvailable() को कॉल कर सकता है, ताकि उपयोगकर्ता Play Store से Google Play services डाउनलोड कर सकें.

वेब

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

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

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

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

कुंजी का मौजूदा जोड़ा इंपोर्ट करें

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

  1. क्लाउड से मैसेज खोलें टैब में जाकर, Firebase कंसोल के सेटिंग पैनल में जाएं और वेब कॉन्फ़िगरेशन सेक्शन.

  2. वेब पुश सर्टिफ़िकेट टैब में, लिंक टेक्स्ट "इंपोर्ट करें" को ढूंढें और चुनें की जोड़ी बनाई जा सकती है."

  3. कुंजी का जोड़ा इंपोर्ट करें डायलॉग में, अपनी सार्वजनिक और निजी कुंजियां उपलब्ध कराएं संबंधित फ़ील्ड को चुनें और इंपोर्ट करें पर क्लिक करें. कंसोल सार्वजनिक पासकोड स्ट्रिंग और तारीख जोड़ी गई.

कुंजियों के फ़ॉर्मैट और उन्हें जनरेट करने के तरीके के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन सर्वर कुंजियां देखें.

FCM प्लग इन इंस्टॉल करें

  1. Flutter के लिए, Firebase प्लगिन इंस्टॉल करना और उन्हें शुरू करना अगर आपने पहले से ऐसा नहीं किया है.

  2. अपने Flutter प्रोजेक्ट के रूट से, इंस्टॉल करने के लिए नीचे दिया गया कमांड चलाएं प्लगिन:

    flutter pub add firebase_messaging
    
  3. यह प्रोसेस पूरी होने के बाद, अपना Flutter ऐप्लिकेशन फिर से बनाएं:

    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.
    });

अपने-आप शुरू होने से रोकें

FCM रजिस्ट्रेशन टोकन जनरेट होने पर, लाइब्रेरी अपलोड हो जाती है Firebase में आइडेंटिफ़ायर और कॉन्फ़िगरेशन डेटा जोड़ा जा सकता है. अगर आपको टोकन अपने-आप जनरेट होने की सुविधा, बिल्ड के समय अपने-आप शुरू होने की सुविधा को बंद करें.

iOS

iOS पर, अपने Info.plist में मेटाडेटा वैल्यू जोड़ें:

FirebaseMessagingAutoInitEnabled = NO

Android

Android पर, Analytics का डेटा कलेक्शन और FCM अपने-आप शुरू होने की सुविधा बंद करें (आपको ऐसा करना होगा दोनों को बंद करें). इसके लिए, अपने AndroidManifest.xml में ये मेटाडेटा वैल्यू जोड़ें:

<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);

यह वैल्यू सेट होने के बाद ऐप्लिकेशन के रीस्टार्ट होने पर भी बनी रहती है.

अगले चरण

क्लाइंट ऐप्लिकेशन सेट अप होने के बाद, डाउनस्ट्रीम भेजने के लिए तैयार है मैसेज के साथ सूचनाओं लिखने वाला व्यक्ति. बैकग्राउंड में काम करने वाले ऐप्लिकेशन को टेस्ट मैसेज भेजें को देखें.

अपने ऐप्लिकेशन में अन्य ऐडवांस सुविधाएं जोड़ने के लिए, आपको सर्वर लागू करना.

इसके बाद, अपने ऐप्लिकेशन क्लाइंट में: