FCM के साथ आरंभ करने के लिए, सबसे सरल उपयोग केस बनाएं: जब ऐप डिवाइस पर बैकग्राउंड में हो, तो नोटिफिकेशन कंपोजर से डेवलपमेंट डिवाइस पर टेस्ट नोटिफिकेशन मैसेज भेजना। यह पृष्ठ इसे प्राप्त करने के सभी चरणों को सूचीबद्ध करता है, सेटअप से सत्यापन तक — इसमें वे चरण शामिल हो सकते हैं जिन्हें आपने पहले ही पूरा कर लिया है यदि आपने FCM के लिए Apple क्लाइंट ऐप सेट किया है ।
अपने Apple प्रोजेक्ट में Firebase जोड़ें
इस अनुभाग में उन कार्यों को शामिल किया गया है जिन्हें आपने पूरा किया हो सकता है यदि आपने अपने ऐप के लिए अन्य Firebase सुविधाओं को पहले ही सक्षम कर दिया है। विशेष रूप से FCM के लिए, आपको अपनी APN प्रमाणीकरण कुंजी अपलोड करनी होगी और दूरस्थ सूचनाओं के लिए पंजीकरण करना होगा।
आवश्यक शर्तें
निम्नलिखित स्थापित करें:
- एक्सकोड 13.3.1 या बाद में
सुनिश्चित करें कि आपकी परियोजना इन आवश्यकताओं को पूरा करती है:
- आपके प्रोजेक्ट को इन प्लेटफ़ॉर्म संस्करणों या बाद के संस्करणों को लक्षित करना चाहिए:
- आईओएस 10
- मैकोज़ 10.12
- टीवीओएस 12
- वॉचओएस 6
- आपके प्रोजेक्ट को इन प्लेटफ़ॉर्म संस्करणों या बाद के संस्करणों को लक्षित करना चाहिए:
अपना ऐप चलाने के लिए एक भौतिक Apple डिवाइस सेट करें, और इन कार्यों को पूरा करें:
- अपने Apple डेवलपर खाते के लिए Apple पुश सूचना प्रमाणीकरण कुंजी प्राप्त करें।
- ऐप> क्षमताओं के तहत एक्सकोड में पुश नोटिफिकेशन सक्षम करें।
- अपने Google खाते का उपयोग करके Firebase में साइन इन करें ।
यदि आपके पास पहले से कोई Xcode प्रोजेक्ट नहीं है और आप केवल Firebase उत्पाद आज़माना चाहते हैं, तो आप हमारे त्वरित प्रारंभ नमूनों में से एक को डाउनलोड कर सकते हैं।
एक फायरबेस प्रोजेक्ट बनाएं
इससे पहले कि आप अपने ऐप्पल ऐप में फायरबेस जोड़ सकें, आपको अपने ऐप से कनेक्ट करने के लिए एक फायरबेस प्रोजेक्ट बनाना होगा। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए फायरबेस प्रोजेक्ट्स को समझें पर जाएं।
अपने ऐप को Firebase के साथ पंजीकृत करें
अपने ऐप्पल ऐप में फायरबेस का उपयोग करने के लिए, आपको अपने ऐप को अपने फायरबेस प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर अपने प्रोजेक्ट में अपने ऐप को "जोड़ना" कहा जाता है।
फायरबेस कंसोल पर जाएं।
प्रोजेक्ट ओवरव्यू पेज के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए iOS+ आइकन पर क्लिक करें।
अगर आपने पहले ही अपने Firebase प्रोजेक्ट में एक ऐप जोड़ लिया है, तो प्लेटफ़ॉर्म विकल्प प्रदर्शित करने के लिए ऐप जोड़ें पर क्लिक करें।
बंडल आईडी फ़ील्ड में अपने ऐप्लिकेशन की बंडल आईडी डालें.
एक बंडल आईडी विशिष्ट रूप से Apple के पारिस्थितिकी तंत्र में एक एप्लिकेशन की पहचान करता है।
अपनी बंडल आईडी खोजें: अपना प्रोजेक्ट Xcode में खोलें, प्रोजेक्ट नेविगेटर में शीर्ष-स्तरीय ऐप चुनें, फिर सामान्य टैब चुनें।
बंडल पहचानकर्ता फ़ील्ड का मान बंडल आईडी है (उदाहरण के लिए,
com.yourcompany.yourproject
)।ध्यान रखें कि बंडल आईडी मान केस-संवेदी है, और आपके Firebase प्रोजेक्ट के साथ पंजीकृत होने के बाद इसे इस Firebase ऐप के लिए बदला नहीं जा सकता है।
(वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और ऐप स्टोर आईडी ।
ऐप का प्रचलित नाम : एक आंतरिक, सुविधा पहचानकर्ता जो केवल आपको Firebase कंसोल में दिखाई देता है
ऐप स्टोर आईडी : उपयोगकर्ताओं को आपके ऐप स्टोर पेज पर रीडायरेक्ट करने के लिए फायरबेस डायनेमिक लिंक द्वारा और Google Analytics द्वारा Google Ads में रूपांतरण ईवेंट आयात करने के लिए उपयोग किया जाता है। अगर आपके ऐप में अभी तक ऐप स्टोर आईडी नहीं है, तो आप बाद में अपनी प्रोजेक्ट सेटिंग में आईडी जोड़ सकते हैं।
रजिस्टर ऐप पर क्लिक करें।
एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
अपनी फ़ायरबेस ऐप्पल प्लेटफ़ॉर्म कॉन्फ़िग फ़ाइल (
GoogleService-Info.plist
) प्राप्त करने के लिए GoogleService-Info.plist डाउनलोड करें पर क्लिक करें।फायरबेस कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए अद्वितीय, लेकिन गैर-गुप्त पहचानकर्ता हैं। इस कॉन्फ़िग फ़ाइल के बारे में अधिक जानने के लिए, फायरबेस प्रोजेक्ट्स को समझें पर जाएं।
आप अपनी Firebase कॉन्फ़िग फ़ाइल को किसी भी समय फिर से डाउनलोड कर सकते हैं।
सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल नाम अतिरिक्त वर्णों के साथ नहीं जोड़ा गया है, जैसे
(2)
।
अपनी कॉन्फ़िगरेशन फ़ाइल को अपने एक्सकोड प्रोजेक्ट की जड़ में ले जाएं। संकेत मिलने पर, कॉन्फ़िग फ़ाइल को सभी लक्ष्यों में जोड़ने के लिए चुनें.
अगर आपके प्रोजेक्ट में कई बंडल आईडी हैं, तो आपको प्रत्येक बंडल आईडी को Firebase कंसोल में एक पंजीकृत ऐप से संबद्ध करना होगा ताकि प्रत्येक ऐप की अपनी GoogleService-Info.plist
फ़ाइल हो सके।
अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ें
फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।
- Xcode में, आपका ऐप प्रोजेक्ट खुला होने के साथ, File > Add Packages पर नेविगेट करें।
- संकेत मिलने पर, Firebase Apple प्लेटफॉर्म्स SDK रिपॉजिटरी जोड़ें:
- फायरबेस क्लाउड मैसेजिंग लाइब्रेरी चुनें।
- फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम अनुशंसा करते हैं कि आप अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करें और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ें। आप आईडीएफए संग्रह के बिना या आईडीएफए संग्रह के साथ पुस्तकालय का चयन कर सकते हैं।
- समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरता को हल करना और डाउनलोड करना शुरू कर देगा।
https://github.com/firebase/firebase-ios-sdk
अपनी APN प्रमाणीकरण कुंजी अपलोड करें
Firebase पर अपनी APN प्रमाणीकरण कुंजी अपलोड करें. यदि आपके पास पहले से APNs प्रमाणीकरण कुंजी नहीं है, तो Apple डेवलपर सदस्य केंद्र में एक बनाना सुनिश्चित करें।
फायरबेस कंसोल में अपने प्रोजेक्ट के अंदर, गियर आइकन चुनें, प्रोजेक्ट सेटिंग्स चुनें और फिर क्लाउड मैसेजिंग टैब चुनें।
आईओएस ऐप कॉन्फ़िगरेशन के तहत एपीएन प्रमाणीकरण कुंजी में, अपलोड बटन पर क्लिक करें।
उस स्थान पर ब्राउज़ करें जहां आपने अपनी कुंजी सहेजी थी, उसे चुनें और खोलें क्लिक करें. कुंजी के लिए कुंजी आईडी जोड़ें ( Apple डेवलपर सदस्य केंद्र में उपलब्ध) और अपलोड पर क्लिक करें।
अपने ऐप में फायरबेस को इनिशियलाइज़ करें
आपको अपने आवेदन में फायरबेस इनिशियलाइज़ेशन कोड जोड़ना होगा। फायरबेस मॉड्यूल आयात करें और दिखाए गए अनुसार साझा उदाहरण को कॉन्फ़िगर करें:
- अपने
UIApplicationDelegate
मेंFirebaseCore
मॉड्यूल आयात करें, साथ ही आपके ऐप प्रतिनिधि द्वारा उपयोग किए जाने वाले किसी भी अन्य Firebase मॉड्यूल को आयात करें। उदाहरण के लिए, क्लाउड फायरस्टोर और प्रमाणीकरण का उपयोग करने के लिए:तीव्र
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
उद्देश्य सी
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
-
FirebaseApp
साझा इंस्टेंस कॉन्फ़िगर करें, आमतौर पर आपके ऐप केapplication:didFinishLaunchingWithOptions:
विधि:तीव्र
// Use Firebase library to configure APIs FirebaseApp.configure()
उद्देश्य सी
// Use Firebase library to configure APIs [FIRApp configure];
दूरस्थ सूचनाओं के लिए पंजीकरण करें
या तो स्टार्टअप पर, या अपने आवेदन प्रवाह में वांछित बिंदु पर, दूरस्थ सूचनाओं के लिए अपना ऐप पंजीकृत करें। कॉलregisterForRemoteNotifications
जैसा कि दिखाया गया है:तीव्र
if #available(iOS 10.0, *) { // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) } else { let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) application.registerUserNotificationSettings(settings) } application.registerForRemoteNotifications()
उद्देश्य सी
if ([UNUserNotificationCenter class] != nil) { // iOS 10 or later // For iOS 10 display notification (sent via APNS) [UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; } else { // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications. UIUserNotificationType allNotificationTypes = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil]; [application registerUserNotificationSettings:settings]; } [application registerForRemoteNotifications];
पंजीकरण टोकन तक पहुंचें
किसी विशिष्ट डिवाइस पर संदेश भेजने के लिए, आपको उस डिवाइस के पंजीकरण टोकन को जानना होगा। चूंकि आपको इस ट्यूटोरियल को पूरा करने के लिए नोटिफिकेशन कंपोजर में एक फ़ील्ड में टोकन दर्ज करना होगा, इसलिए टोकन की प्रतिलिपि बनाना सुनिश्चित करें या इसे पुनर्प्राप्त करने के बाद इसे सुरक्षित रूप से संग्रहीत करें।
डिफ़ॉल्ट रूप से, FCM SDK ऐप लॉन्च पर क्लाइंट ऐप इंस्टेंस के लिए एक पंजीकरण टोकन उत्पन्न करता है। एपीएन डिवाइस टोकन के समान, यह टोकन आपको अपने ऐप के किसी विशेष उदाहरण पर लक्षित सूचनाएं भेजने की अनुमति देता है।
जिस तरह ऐप्पल प्लेटफॉर्म आम तौर पर ऐप स्टार्ट पर एपीएन डिवाइस टोकन प्रदान करते हैं, एफसीएम FIRMessagingDelegate
के messaging:didReceiveRegistrationToken:
विधि के माध्यम से पंजीकरण टोकन प्रदान करता है। एफसीएम एसडीके प्रारंभिक ऐप लॉन्च के दौरान और जब भी टोकन अपडेट या अमान्य हो जाता है तो एक नया या मौजूदा टोकन पुनर्प्राप्त करता है। सभी मामलों में, FCM SDK एक वैध टोकन के साथ messaging:didReceiveRegistrationToken:
को कॉल करता है।
पंजीकरण टोकन तब बदल सकता है जब:
- ऐप को एक नए डिवाइस पर पुनर्स्थापित किया गया है
- उपयोगकर्ता ऐप को अनइंस्टॉल/रीइंस्टॉल करता है
- उपयोगकर्ता ऐप डेटा साफ़ करता है।
मैसेजिंग प्रतिनिधि सेट करें
पंजीकरण टोकन प्राप्त करने के लिए, मैसेजिंग डेलिगेट प्रोटोकॉल को लागू करें और [FIRApp configure]
को कॉल करने के बाद FIRMessaging
की delegate
संपत्ति सेट करें। उदाहरण के लिए, यदि आपका एप्लिकेशन प्रतिनिधि मैसेजिंग प्रतिनिधि प्रोटोकॉल के अनुरूप है, तो आप प्रतिनिधि को application:didFinishLaunchingWithOptions:
पर स्वयं सेट कर सकते हैं।
तीव्र
Messaging.messaging().delegate = self
उद्देश्य सी
[FIRMessaging messaging].delegate = self;
वर्तमान पंजीकरण टोकन लाया जा रहा है
पंजीकरण टोकन विधि messaging:didReceiveRegistrationToken:
इस विधि को आम तौर पर एक बार प्रति ऐप पंजीकरण टोकन के साथ शुरू करने के लिए कहा जाता है। जब इस विधि को कहा जाता है, तो यह आदर्श समय है:
- यदि पंजीकरण टोकन नया है, तो इसे अपने एप्लिकेशन सर्वर पर भेजें।
- विषयों के लिए पंजीकरण टोकन की सदस्यता लें। यह केवल नई सदस्यताओं के लिए या उन स्थितियों के लिए आवश्यक है जहां उपयोगकर्ता ने ऐप को फिर से इंस्टॉल किया है।
आप सीधे टोकन (पूर्णता:) का उपयोग करके टोकन प्राप्त कर सकते हैं। यदि टोकन पुनर्प्राप्ति किसी भी तरह से विफल हो जाती है, तो एक गैर-शून्य त्रुटि प्रदान की जाती है।
तीव्र
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
उद्देश्य सी
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
आप इस पद्धति का उपयोग किसी भी समय टोकन को संग्रहीत करने के बजाय उस तक पहुँचने के लिए कर सकते हैं।
मॉनिटर टोकन रिफ्रेश
जब भी टोकन अपडेट किया जाता है तो अधिसूचित होने के लिए, मैसेजिंग प्रतिनिधि प्रोटोकॉल के अनुरूप एक प्रतिनिधि की आपूर्ति करें। निम्न उदाहरण प्रतिनिधि को पंजीकृत करता है और उचित प्रतिनिधि विधि जोड़ता है:
तीव्र
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
उद्देश्य सी
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
वैकल्पिक रूप से, आप एक प्रतिनिधि विधि की आपूर्ति के बजाय NSNotification
नामक kFIRMessagingRegistrationTokenRefreshNotification
को सुन सकते हैं। टोकन संपत्ति में हमेशा वर्तमान टोकन मूल्य होता है।
एक सूचना संदेश भेजें
लक्ष्य डिवाइस पर ऐप इंस्टॉल करें और चलाएं। आपको दूरस्थ सूचनाएं प्राप्त करने के लिए अनुमति के अनुरोध को स्वीकार करना होगा।
सुनिश्चित करें कि ऐप डिवाइस के बैकग्राउंड में है।
नोटिफिकेशन कंपोजर खोलें और न्यू नोटिफिकेशन चुनें।
संदेश पाठ दर्ज करें।
परीक्षण संदेश भेजें चुनें.
FCM पंजीकरण टोकन जोड़ें लेबल वाली फ़ील्ड में, इस मार्गदर्शिका के पिछले अनुभाग में प्राप्त पंजीकरण टोकन दर्ज करें।
परीक्षण पर क्लिक करें
आपके द्वारा परीक्षण पर क्लिक करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को सूचना केंद्र में सूचना प्राप्त होनी चाहिए।
अपने ऐप पर संदेश वितरण में अंतर्दृष्टि के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें, जो Android ऐप्स के लिए "इंप्रेशन" (उपयोगकर्ताओं द्वारा देखी गई सूचनाएं) के डेटा के साथ-साथ Apple और Android उपकरणों पर भेजे और खोले गए संदेशों की संख्या को रिकॉर्ड करता है।
अगले कदम
अधिसूचना संदेशों से परे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: