FCM के साथ आरंभ करने के लिए, सबसे सरल उपयोग के मामले का निर्माण करें: जब एप्लिकेशन डिवाइस पर पृष्ठभूमि में हो, तो नोटिफिकेशन कंपोजर से एक डेवलपमेंट डिवाइस को एक परीक्षण सूचना संदेश भेजना। यह पृष्ठ सेटअप से लेकर सत्यापन तक, इसे प्राप्त करने के लिए सभी चरणों को सूचीबद्ध करता है - यदि आपने FCM के लिए Apple क्लाइंट ऐप सेट किया है तो इसमें आपके द्वारा पहले से पूरे किए गए चरण शामिल हो सकते हैं।
अपने Apple प्रोजेक्ट में Firebase जोड़ें
यदि आपने अपने ऐप के लिए अन्य फायरबेस सुविधाओं को पहले ही सक्षम कर लिया है तो यह अनुभाग आपके द्वारा पूर्ण किए गए कार्यों को कवर करता है। विशेष रूप से FCM के लिए, आपको अपनी APN प्रमाणीकरण कुंजी अपलोड करनी होगी और दूरस्थ सूचनाओं के लिए पंजीकरण करना होगा ।
आवश्यक शर्तें
निम्नलिखित स्थापित करें:
- एक्सकोड 13.3.1 या बाद में
सुनिश्चित करें कि आपकी परियोजना इन आवश्यकताओं को पूरा करती है:
- आपकी परियोजना को इन प्लेटफ़ॉर्म संस्करणों या बाद के संस्करणों को लक्षित करना चाहिए:
- आईओएस 11
- मैकोज़ 10.13
- टीवीओएस 12
- वॉचओएस 6
- आपकी परियोजना को इन प्लेटफ़ॉर्म संस्करणों या बाद के संस्करणों को लक्षित करना चाहिए:
अपना ऐप चलाने के लिए एक भौतिक Apple डिवाइस सेट करें और इन कार्यों को पूरा करें:
- अपने Apple डेवलपर खाते के लिए Apple Push Notification Authentication Key प्राप्त करें।
- ऐप> क्षमताओं के तहत एक्सकोड में पुश अधिसूचनाएं सक्षम करें।
- अपने Google खाते का उपयोग करके फायरबेस में साइन इन करें ।
यदि आपके पास पहले से कोई Xcode प्रोजेक्ट नहीं है और आप केवल एक Firebase उत्पाद आज़माना चाहते हैं, तो आप हमारे क्विकस्टार्ट नमूनों में से एक को डाउनलोड कर सकते हैं।
एक फायरबेस प्रोजेक्ट बनाएं
इससे पहले कि आप अपने Apple ऐप में Firebase जोड़ सकें, आपको अपने ऐप से कनेक्ट करने के लिए एक Firebase प्रोजेक्ट बनाना होगा। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए अंडरस्टैंड फायरबेस प्रोजेक्ट्स पर जाएं।
अपने ऐप को फायरबेस के साथ पंजीकृत करें
अपने Apple ऐप में Firebase का उपयोग करने के लिए, आपको अपने ऐप को अपने Firebase प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर आपके ऐप को आपके प्रोजेक्ट में "जोड़ना" कहा जाता है।
फायरबेस कंसोल पर जाएं।
प्रोजेक्ट अवलोकन पृष्ठ के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए iOS+ आइकन पर क्लिक करें।
यदि आप पहले से ही अपने फायरबेस प्रोजेक्ट में एक ऐप जोड़ चुके हैं, तो प्लेटफ़ॉर्म विकल्प प्रदर्शित करने के लिए ऐप जोड़ें पर क्लिक करें।
बंडल आईडी फ़ील्ड में अपने ऐप की बंडल आईडी दर्ज करें।
एक बंडल आईडी विशिष्ट रूप से Apple के पारिस्थितिकी तंत्र में एक एप्लिकेशन की पहचान करता है।
अपनी बंडल आईडी खोजें: अपना प्रोजेक्ट Xcode में खोलें, प्रोजेक्ट नेविगेटर में शीर्ष-स्तरीय ऐप चुनें, फिर सामान्य टैब चुनें।
बंडल पहचानकर्ता फ़ील्ड का मान बंडल आईडी है (उदाहरण के लिए,
com.yourcompany.yourproject
)।ध्यान रखें कि बंडल आईडी मान केस-संवेदी है, और इसे आपके फायरबेस प्रोजेक्ट के साथ पंजीकृत होने के बाद इस फायरबेस ऐप के लिए नहीं बदला जा सकता है।
(वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और ऐप स्टोर आईडी ।
ऐप का उपनाम : एक आंतरिक, सुविधा पहचानकर्ता जो केवल फायरबेस कंसोल में आपको दिखाई देता है
ऐप स्टोर आईडी : फायरबेस डायनेमिक लिंक द्वारा उपयोगकर्ताओं को आपके ऐप स्टोर पेज पर रीडायरेक्ट करने के लिए और Google एनालिटिक्स द्वारा Google विज्ञापनों में रूपांतरण घटनाओं को आयात करने के लिए उपयोग किया जाता है। यदि आपके ऐप में अभी तक ऐप स्टोर आईडी नहीं है, तो आप बाद में अपनी प्रोजेक्ट सेटिंग में आईडी जोड़ सकते हैं।
रजिस्टर ऐप पर क्लिक करें।
एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
अपनी Firebase Apple प्लेटफ़ॉर्म कॉन्फ़िगरेशन फ़ाइल (
GoogleService-Info.plist
) प्राप्त करने के लिए GoogleService-Info.plist डाउनलोड करें पर क्लिक करें।फायरबेस कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए अद्वितीय, लेकिन गैर-गुप्त पहचानकर्ता शामिल हैं। इस कॉन्फ़िगरेशन फ़ाइल के बारे में अधिक जानने के लिए, Firebase Projects को समझें पर जाएं।
आप किसी भी समय अपनी फायरबेस कॉन्फ़िगरेशन फ़ाइल को दोबारा डाउनलोड कर सकते हैं।
सुनिश्चित करें कि कॉन्फ़िगरेशन फ़ाइल नाम अतिरिक्त वर्णों के साथ नहीं जोड़ा गया है, जैसे
(2)
.
अपनी कॉन्फ़िगरेशन फ़ाइल को अपने एक्सकोड प्रोजेक्ट की जड़ में ले जाएं। यदि संकेत दिया जाता है, तो सभी लक्ष्यों में कॉन्फ़िग फ़ाइल जोड़ने के लिए चयन करें।
यदि आपके प्रोजेक्ट में एकाधिक बंडल आईडी हैं, तो आपको प्रत्येक बंडल आईडी को फायरबेस कंसोल में एक पंजीकृत ऐप के साथ संबद्ध करना होगा ताकि प्रत्येक ऐप की अपनी GoogleService-Info.plist
फ़ाइल हो सके।
अपने ऐप में फायरबेस एसडीके जोड़ें
फायरबेस निर्भरताओं को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।
- Xcode में, अपने ऐप प्रोजेक्ट को खोलने के साथ, File > Add Packages पर नेविगेट करें।
- संकेत दिए जाने पर, Firebase Apple प्लेटफ़ॉर्म SDK रिपॉजिटरी जोड़ें:
- फायरबेस क्लाउड मैसेजिंग लाइब्रेरी चुनें।
- फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम आपके फायरबेस प्रोजेक्ट में Google एनालिटिक्स को सक्षम करने और Google एनालिटिक्स के लिए फायरबेस एसडीके को अपने ऐप में जोड़ने की सलाह देते हैं। आप या तो आईडीएफए संग्रह के बिना या आईडीएफए संग्रह के साथ पुस्तकालय का चयन कर सकते हैं।
- समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरताओं को हल करना और डाउनलोड करना शुरू कर देगा।
https://github.com/firebase/firebase-ios-sdk
अपनी APN प्रमाणीकरण कुंजी अपलोड करें
Firebase पर अपनी APNs प्रमाणीकरण कुंजी अपलोड करें। यदि आपके पास पहले से कोई APNs प्रमाणीकरण कुंजी नहीं है, तो Apple डेवलपर सदस्य केंद्र में एक बनाना सुनिश्चित करें।
फायरबेस कंसोल में अपने प्रोजेक्ट के अंदर, गियर आइकन का चयन करें, प्रोजेक्ट सेटिंग्स का चयन करें और फिर क्लाउड मैसेजिंग टैब का चयन करें।
आईओएस ऐप कॉन्फ़िगरेशन के तहत एपीएन प्रमाणीकरण कुंजी में, अपलोड बटन पर क्लिक करें।
उस स्थान पर ब्राउज़ करें जहां आपने अपनी कुंजी सहेजी थी, उसका चयन करें, और खोलें पर क्लिक करें। कुंजी के लिए कुंजी आईडी जोड़ें ( Apple Developer Member Center में उपलब्ध) और अपलोड पर क्लिक करें।
अपने ऐप में फायरबेस को इनिशियलाइज़ करें
आपको अपने ऐप्लिकेशन में Firebase इनिशियलाइज़ेशन कोड जोड़ना होगा। फायरबेस मॉड्यूल आयात करें और दिखाए गए अनुसार एक साझा उदाहरण को कॉन्फ़िगर करें:
- अपने
UIApplicationDelegate
मेंFirebaseCore
मॉड्यूल आयात करें, साथ ही आपके ऐप प्रतिनिधि द्वारा उपयोग किए जाने वाले किसी भी अन्य Firebase मॉड्यूल को आयात करें। उदाहरण के लिए, क्लाउड फायरस्टार और प्रमाणीकरण का उपयोग करने के लिए:स्विफ्टयूआई
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
तीव्र
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
उद्देश्य सी
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- अपने ऐप प्रतिनिधि के
application(_:didFinishLaunchingWithOptions:)
विधि मेंFirebaseApp
साझा उदाहरण कॉन्फ़िगर करें:स्विफ्टयूआई
// Use Firebase library to configure APIs FirebaseApp.configure()
तीव्र
// Use Firebase library to configure APIs FirebaseApp.configure()
उद्देश्य सी
// Use Firebase library to configure APIs [FIRApp configure];
- यदि आप SwiftUI का उपयोग कर रहे हैं, तो आपको एक एप्लिकेशन प्रतिनिधि बनाना होगा और इसे
UIApplicationDelegateAdaptor
याNSApplicationDelegateAdaptor
के माध्यम से अपनेApp
स्ट्रक्चर में संलग्न करना होगा। आपको ऐप डेलिगेट स्विज़लिंग को भी अक्षम करना होगा। अधिक जानकारी के लिए, SwiftUI निर्देश देखें.स्विफ्टयूआई
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
दूरस्थ सूचनाओं के लिए पंजीकरण करें
या तो स्टार्टअप पर, या अपने एप्लिकेशन प्रवाह में वांछित बिंदु पर, अपने ऐप को दूरस्थ सूचनाओं के लिए पंजीकृत करें। कॉलregisterForRemoteNotifications
जैसा दिखाया गया है:तीव्र
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
उद्देश्य सी
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
पंजीकरण टोकन तक पहुंचें
किसी विशिष्ट उपकरण को संदेश भेजने के लिए, आपको उस उपकरण के पंजीकरण टोकन को जानने की आवश्यकता है। क्योंकि आपको इस ट्यूटोरियल को पूरा करने के लिए अधिसूचना कंपोजर में एक फ़ील्ड में टोकन दर्ज करने की आवश्यकता होगी, टोकन को कॉपी करना सुनिश्चित करें या इसे पुनर्प्राप्त करने के बाद इसे सुरक्षित रूप से स्टोर करें।
डिफ़ॉल्ट रूप से, एफसीएम एसडीके ऐप लॉन्च पर क्लाइंट ऐप इंस्टेंस के लिए पंजीकरण टोकन उत्पन्न करता है। APNs डिवाइस टोकन के समान, यह टोकन आपको अपने ऐप के किसी विशेष उदाहरण के लिए लक्षित सूचनाएँ भेजने की अनुमति देता है।
उसी तरह से जैसे ऐपल प्लेटफॉर्म आमतौर पर ऐप शुरू होने पर APNs डिवाइस टोकन डिलीवर करते हैं, FCM FIRMessagingDelegate
के messaging:didReceiveRegistrationToken:
विधि के माध्यम से एक पंजीकरण टोकन प्रदान करता है। एफसीएम एसडीके प्रारंभिक ऐप लॉन्च के दौरान और जब भी टोकन अपडेट या अमान्य हो जाता है तो एक नया या मौजूदा टोकन पुनर्प्राप्त करता है। सभी मामलों में, FCM SDK messaging:didReceiveRegistrationToken:
एक वैध टोकन के साथ।
पंजीकरण टोकन तब बदल सकता है जब:
- ऐप को एक नए डिवाइस पर पुनर्स्थापित किया गया है
- उपयोगकर्ता ऐप को अनइंस्टॉल/रीइंस्टॉल करता है
- उपयोगकर्ता ऐप डेटा साफ़ करता है।
मैसेजिंग प्रतिनिधि सेट करें
पंजीकरण टोकन प्राप्त करने के लिए, मैसेजिंग प्रतिनिधि प्रोटोकॉल लागू करें और कॉल [FIRApp configure]
के बाद FIRMessaging
की delegate
संपत्ति सेट करें। उदाहरण के लिए, यदि आपका एप्लिकेशन प्रतिनिधि मैसेजिंग प्रतिनिधि प्रोटोकॉल के अनुरूप है, तो आप प्रतिनिधि को application:didFinishLaunchingWithOptions:
पर सेट कर सकते हैं।
तीव्र
Messaging.messaging().delegate = self
उद्देश्य सी
[FIRMessaging messaging].delegate = self;
वर्तमान पंजीकरण टोकन लाया जा रहा है
पंजीकरण टोकन messaging:didReceiveRegistrationToken:
पंजीकरण टोकन के साथ प्रति ऐप शुरू होने के बाद इस विधि को आम तौर पर कहा जाता है। जब इस विधि को कहा जाता है, तो यह आदर्श समय है:
- यदि पंजीकरण टोकन नया है, तो इसे अपने एप्लिकेशन सर्वर पर भेजें।
- विषयों के लिए पंजीकरण टोकन की सदस्यता लें। यह केवल नए सब्सक्रिप्शन या उन स्थितियों के लिए आवश्यक है जहां उपयोगकर्ता ने ऐप को फिर से इंस्टॉल किया हो।
आप token(completion:) का उपयोग करके सीधे टोकन प्राप्त कर सकते हैं। टोकन पुनर्प्राप्ति किसी भी तरह से विफल होने पर एक गैर अशक्त त्रुटि प्रदान की जाती है।
तीव्र
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. }
वैकल्पिक रूप से, आप प्रतिनिधि विधि प्रदान करने के बजाय kFIRMessagingRegistrationTokenRefreshNotification
नामक NSNotification
के लिए सुन सकते हैं। टोकन संपत्ति में हमेशा वर्तमान टोकन मान होता है।
सूचना संदेश भेजें
ऐप को लक्ष्य डिवाइस पर इंस्टॉल करें और चलाएं। Apple उपकरणों पर, आपको दूरस्थ सूचनाएँ प्राप्त करने की अनुमति के अनुरोध को स्वीकार करना होगा।
सुनिश्चित करें कि ऐप डिवाइस पर पृष्ठभूमि में है।
Firebase कंसोल में, मैसेजिंग पेज खोलें।
यदि यह आपका पहला संदेश है, तो अपना पहला अभियान बनाएं चुनें.
- फायरबेस अधिसूचना संदेशों का चयन करें और बनाएं का चयन करें।
अन्यथा, अभियान टैब पर, नया अभियान और फिर सूचनाएं चुनें.
संदेश पाठ दर्ज करें। अन्य सभी क्षेत्र वैकल्पिक हैं।
दाएँ फलक से परीक्षण संदेश भेजें चुनें।
FCM पंजीकरण टोकन जोड़ें लेबल वाली फ़ील्ड में, पंजीकरण टोकन दर्ज करें जो आपने इस मार्गदर्शिका के पिछले अनुभाग में प्राप्त किया था।
परीक्षण का चयन करें।
आपके द्वारा टेस्ट का चयन करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को सूचना प्राप्त होनी चाहिए।
अपने ऐप पर संदेश वितरण की जानकारी के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें, जो Android ऐप्स के लिए "इंप्रेशन" (उपयोगकर्ताओं द्वारा देखी गई सूचनाएं) के डेटा के साथ-साथ Apple और Android उपकरणों पर भेजे गए और खोले गए संदेशों की संख्या को रिकॉर्ड करता है।
अगले कदम
सूचना संदेशों से परे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: