FCM का इस्तेमाल शुरू करने के लिए, सबसे आसान यूज़ केस बनाएं: जब ऐप्लिकेशन डिवाइस पर बैकग्राउंड में हो, तब सूचनाएं कंपोज़र से, डिवाइस पर टेस्ट सूचना मैसेज भेजना. इस पेज पर, सेटअप से लेकर पुष्टि तक की प्रोसेस के सभी चरणों के बारे में बताया गया है. अगर आपने FCM के लिए Apple क्लाइंट ऐप्लिकेशन सेट अप किया है, तो हो सकता है कि इस पेज पर वे चरण भी शामिल हों जिन्हें आपने पहले ही पूरा कर लिया है.
अपने Apple प्रोजेक्ट में Firebase जोड़ना
अगर आपने अपने ऐप्लिकेशन के लिए Firebase की अन्य सुविधाएं पहले ही चालू कर दी हैं, तो हो सकता है कि आपने इस सेक्शन में बताए गए टास्क पूरे कर लिए हों. खास तौर पर, FCM के लिए, आपको अपना APNs पुष्टि करने वाला पासकोड अपलोड करना होगा और रिमोट सूचनाओं के लिए रजिस्टर करना होगा.
ज़रूरी शर्तें
ये इंस्टॉल करें:
- Xcode 15.2 या उसके बाद का वर्शन
पक्का करें कि आपका प्रोजेक्ट इन ज़रूरी शर्तों को पूरा करता हो:
- आपका प्रोजेक्ट, प्लैटफ़ॉर्म के इन वर्शन या इसके बाद के वर्शन को टारगेट करना चाहिए:
- iOS 13
- macOS 10.15
- tvOS 13
- watchOS 7
- आपका प्रोजेक्ट, प्लैटफ़ॉर्म के इन वर्शन या इसके बाद के वर्शन को टारगेट करना चाहिए:
अपना ऐप्लिकेशन चलाने के लिए, Apple का कोई फ़िज़िकल डिवाइस सेट अप करें और ये टास्क पूरे करें:
- अपने Apple डेवलपर खाते के लिए, Apple Push Notification Authentication Key पाएं.
- XCode में, ऐप्लिकेशन > सुविधाएं में जाकर, पुश नोटिफ़िकेशन की सुविधा चालू करें.
- अपने Google खाते का इस्तेमाल करके, Firebase में साइन इन करें.
अगर आपके पास पहले से कोई Xcode प्रोजेक्ट नहीं है और आपको सिर्फ़ Firebase प्रॉडक्ट आज़माना है, तो शुरुआती निर्देशों वाले हमारे किसी सैंपल को डाउनलोड करें.
Firebase प्रोजेक्ट बनाना
अपने Apple ऐप्लिकेशन में Firebase जोड़ने से पहले, आपको अपने ऐप्लिकेशन से कनेक्ट करने के लिए Firebase प्रोजेक्ट बनाना होगा. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी लेख पढ़ें.
Firebase प्रोजेक्ट बनाना
-
Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें.
-
मौजूदा Google Cloud प्रोजेक्ट में Firebase संसाधन जोड़ने के लिए, प्रोजेक्ट का नाम डालें या ड्रॉपडाउन मेन्यू से चुनें.
-
नया प्रोजेक्ट बनाने के लिए, प्रोजेक्ट का नाम डालें. आपके पास प्रोजेक्ट के नाम के नीचे दिख रहे प्रोजेक्ट आईडी में भी बदलाव करने का विकल्प होता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
-
-
अगर कहा जाए, तो Firebase की शर्तें पढ़ें और उन्हें स्वीकार करें.
-
जारी रखें पर क्लिक करें.
-
(ज़रूरी नहीं) अपने प्रोजेक्ट के लिए Google Analytics सेट अप करें. इससे, आपको यहां दिए गए Firebase प्रॉडक्ट में से किसी का भी इस्तेमाल करने का बेहतर अनुभव मिलता है:
कोई मौजूदा Google Analytics खाता चुनें या नया खाता बनाएं.
नया खाता बनाने पर, अपनी Analytics रिपोर्टिंग की जगह चुनें. इसके बाद, अपने प्रोजेक्ट के लिए, डेटा शेयर करने की सेटिंग और Google Analytics की शर्तें स्वीकार करें.
-
प्रोजेक्ट बनाएं पर क्लिक करें. अगर किसी मौजूदा Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो Firebase जोड़ें पर क्लिक करें.
Firebase, आपके Firebase प्रोजेक्ट के लिए संसाधनों को अपने-आप उपलब्ध कराता है. प्रोसेस पूरी होने के बाद, आपको Firebase कंसोल में अपने Firebase प्रोजेक्ट की खास जानकारी वाले पेज पर ले जाया जाएगा.
अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर करना
अपने Apple ऐप्लिकेशन में Firebase का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को अपने Firebase प्रोजेक्ट के साथ रजिस्टर करना होगा. अपने ऐप्लिकेशन को रजिस्टर करने को, अक्सर अपने प्रोजेक्ट में ऐप्लिकेशन को "जोड़ना" कहा जाता है.
Firebase console पर जाएं.
प्रोजेक्ट की खास जानकारी वाले पेज के बीच में, सेटअप वर्कफ़्लो को लॉन्च करने के लिए, iOS+ आइकॉन पर क्लिक करें.
अगर आपने अपने Firebase प्रोजेक्ट में पहले से ही कोई ऐप्लिकेशन जोड़ दिया है, तो प्लैटफ़ॉर्म के विकल्प दिखाने के लिए, ऐप्लिकेशन जोड़ें पर क्लिक करें.
बंडल आईडी फ़ील्ड में, अपने ऐप्लिकेशन का बंडल आईडी डालें.
बंडल आईडी क्या है और यह कहां मिलता है?
बंडल आईडी, Apple के नेटवर्क में किसी ऐप्लिकेशन की खास तौर पर पहचान करता है.
अपना बंडल आईडी ढूंढें: Xcode में अपना प्रोजेक्ट खोलें, प्रोजेक्ट नेविगेटर में सबसे ऊपर मौजूद ऐप्लिकेशन चुनें. इसके बाद, सामान्य टैब चुनें.
बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू, बंडल आईडी है (उदाहरण के लिए,
com.yourcompany.yourproject
).ध्यान रखें कि बंडल आईडी की वैल्यू केस-सेंसिटिव होती है. साथ ही, Firebase प्रोजेक्ट में रजिस्टर होने के बाद, इस Firebase ऐप्लिकेशन के लिए इसे बदला नहीं जा सकता.
(ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का कोई दूसरा नाम और App Store आईडी.
Firebase में ऐप्लिकेशन का कोई दूसरा नाम और ऐप्लिकेशन स्टोर आईडी का इस्तेमाल कैसे किया जाता है?
ऐप्लिकेशन का कोई दूसरा नाम: यह एक इंटरनल आइडेंटिफ़ायर है, जो सिर्फ़ Firebase कंसोल में दिखता है
App Store आईडी: इसका इस्तेमाल Firebase Dynamic Links, उपयोगकर्ताओं को आपके ऐप्लिकेशन के App Store पेज पर रीडायरेक्ट करने के लिए करता है. साथ ही, Google Analytics इसका इस्तेमाल Google Ads में कन्वर्ज़न इवेंट इंपोर्ट करने के लिए करता है. अगर आपके ऐप्लिकेशन का अब तक कोई App Store आईडी नहीं है, तो प्रोजेक्ट सेटिंग में जाकर, बाद में आईडी जोड़ा जा सकता है.
ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना
Firebase के Apple प्लैटफ़ॉर्म की कॉन्फ़िगरेशन फ़ाइल (
GoogleService-Info.plist
) पाने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें.आपको इस कॉन्फ़िगरेशन फ़ाइल के बारे में क्या जानना चाहिए?
Firebase कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए यूनीक, लेकिन सामान्य आइडेंटिफ़ायर होते हैं. इस कॉन्फ़िगरेशन फ़ाइल के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानें पर जाएं.
Firebase कॉन्फ़िगरेशन फ़ाइल को कभी भी फिर से डाउनलोड किया जा सकता है.
पक्का करें कि कॉन्फ़िगरेशन फ़ाइल के नाम में
(2)
जैसे अतिरिक्त वर्ण न हों.
अपनी कॉन्फ़िगरेशन फ़ाइल को Xcode प्रोजेक्ट के रूट में ले जाएं. अगर आपसे कहा जाए, तो सभी टारगेट में कॉन्फ़िगरेशन फ़ाइल जोड़ने का विकल्प चुनें.
अगर आपके प्रोजेक्ट में एक से ज़्यादा बंडल आईडी हैं, तो आपको हर बंडल आईडी को Firebase कंसोल में रजिस्टर किए गए ऐप्लिकेशन से जोड़ना होगा. इससे हर ऐप्लिकेशन के पास अपनी GoogleService-Info.plist
फ़ाइल हो सकती है.
अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ना
Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलकर, फ़ाइल > पैकेज जोड़ें पर जाएं.
- जब कहा जाए, तब Firebase के Apple प्लैटफ़ॉर्म के SDK टूल का रिपॉज़िटरी जोड़ें:
- Firebase Cloud Messaging लाइब्रेरी चुनें.
- अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में
-ObjC
फ़्लैग जोड़ें. - Firebase Cloud Messaging का बेहतर अनुभव पाने के लिए, हमारा सुझाव है कि आप अपने Firebase प्रोजेक्ट में Google Analytics को चालू करें और अपने ऐप्लिकेशन में 'Firebase के लिए Google Analytics' SDK टूल जोड़ें. आपके पास IDFA कलेक्शन के साथ या बिना IDFA कलेक्शन वाली लाइब्रेरी चुनने का विकल्प होता है.
- प्रोसेस पूरी होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप हल और डाउनलोड करना शुरू कर देगा.
https://github.com/firebase/firebase-ios-sdk.git
APNs की पुष्टि करने वाली कुंजी अपलोड करना
Firebase में APNs की पुष्टि करने वाली कुंजी अपलोड करें. अगर आपके पास पहले से कोई APNs पुष्टि करने की कुंजी नहीं है, तो Apple Developer Member Center में जाकर एक कुंजी बनाएं.
-
Firebase कंसोल में अपने प्रोजेक्ट में, गियर आइकॉन चुनें. इसके बाद, प्रोजेक्ट सेटिंग चुनें और फिर क्लाउड मैसेजिंग टैब चुनें.
-
iOS ऐप्लिकेशन कॉन्फ़िगरेशन में जाकर, APNs की पुष्टि करने वाली कुंजी में, अपलोड करें बटन पर क्लिक करें.
-
उस जगह पर ब्राउज़ करें जहां आपने अपनी कुंजी सेव की है. इसके बाद, उसे चुनें और खोलें पर क्लिक करें. पासकोड के लिए पासकोड आईडी जोड़ें. यह आईडी, Apple Developer Member Center में उपलब्ध होता है. इसके बाद, अपलोड करें पर क्लिक करें.
अपने ऐप्लिकेशन में Firebase को शुरू करना
आपको अपने ऐप्लिकेशन में Firebase को शुरू करने वाला कोड जोड़ना होगा. Firebase मॉड्यूल इंपोर्ट करें और शेयर किए गए इंस्टेंस को इस तरह कॉन्फ़िगर करें:
- अपने
UIApplicationDelegate
मेंFirebaseCore
मॉड्यूल के साथ-साथ, उन सभी Firebase मॉड्यूल को इंपोर्ट करें जिनका इस्तेमाल आपका ऐप्लिकेशन डेलीगेट करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए: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];
रजिस्ट्रेशन टोकन ऐक्सेस करना
किसी डिवाइस पर मैसेज भेजने के लिए, आपको उस डिवाइस का रजिस्ट्रेशन टोकन पता होना चाहिए. इस ट्यूटोरियल को पूरा करने के लिए, आपको सूचनाएं कंपोजर में किसी फ़ील्ड में टोकन डालना होगा. इसलिए, टोकन हासिल करने के बाद, उसे कॉपी करना न भूलें या सुरक्षित तरीके से सेव करें.
डिफ़ॉल्ट रूप से, FCM SDK टूल, ऐप्लिकेशन लॉन्च होने पर क्लाइंट ऐप्लिकेशन इंस्टेंस के लिए रजिस्ट्रेशन टोकन जनरेट करता है. APNs डिवाइस टोकन की तरह ही, इस टोकन की मदद से अपने ऐप्लिकेशन के किसी भी खास इंस्टेंस पर टारगेट की गई सूचनाएं भेजी जा सकती हैं.
जिस तरह Apple के प्लैटफ़ॉर्म आम तौर पर ऐप्लिकेशन के शुरू होने पर APNs डिवाइस टोकन डिलीवर करते हैं उसी तरह,
FCM FIRMessagingDelegate
के messaging:didReceiveRegistrationToken:
तरीके से रजिस्टरेशन टोकन उपलब्ध कराता है.
FCM SDK टूल, ऐप्लिकेशन के लॉन्च होने के दौरान नया या मौजूदा टोकन हासिल करता है. साथ ही, टोकन अपडेट होने या अमान्य होने पर भी ऐसा करता है.
सभी मामलों में, 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. }
इसके अलावा, किसी डिलीगेट तरीके को देने के बजाय, NSNotification
नाम वाले
kFIRMessagingRegistrationTokenRefreshNotification
को सुना जा सकता है. टोकन प्रॉपर्टी में हमेशा
टोकन की मौजूदा वैल्यू होती है.
सूचना मैसेज भेजना
टारगेट किए गए डिवाइस पर ऐप्लिकेशन इंस्टॉल करें और चलाएं. Apple डिवाइसों पर, आपको रिमोट सूचनाएं पाने के लिए अनुमति का अनुरोध स्वीकार करना होगा.
पक्का करें कि ऐप्लिकेशन, डिवाइस पर बैकग्राउंड में चल रहा हो.
Firebase कंसोल में, मैसेज सेवा वाला पेज खोलें.
अगर यह आपका पहला मैसेज है, तो अपना पहला कैंपेन बनाएं को चुनें.
- Firebase सूचना मैसेज चुनें और बनाएं चुनें.
इसके अलावा, कैंपेन टैब में, नया कैंपेन चुनें. इसके बाद, सूचनाएं चुनें.
मैसेज का टेक्स्ट डालें. बाकी सभी फ़ील्ड ज़रूरी नहीं हैं.
दाएं पैनल से, जांच मैसेज भेजें को चुनें.
FCM रजिस्ट्रेशन टोकन जोड़ें लेबल वाले फ़ील्ड में, वह रजिस्ट्रेशन टोकन डालें जो आपको इस गाइड के पिछले सेक्शन में मिला था.
जांचें को चुनें.
जांच करें चुनने के बाद, टारगेट किए गए क्लाइंट डिवाइस (जिस पर ऐप्लिकेशन बैकग्राउंड में चल रहा है) को सूचना मिलनी चाहिए.
अपने ऐप्लिकेशन पर मैसेज डिलीवरी की अहम जानकारी पाने के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें. इसमें, Apple और Android डिवाइसों पर भेजे गए और खोले गए मैसेज की संख्या के साथ-साथ, Android ऐप्लिकेशन के लिए "इंप्रेशन" (उपयोगकर्ताओं को मिली सूचनाएं) का डेटा भी रिकॉर्ड किया जाता है.
अगले चरण
सूचना मैसेज के अलावा, अपने ऐप्लिकेशन में और भी बेहतर सुविधाएं जोड़ने के लिए, यह लेख पढ़ें: