iOS लागू करना

यहां दिए गए उदाहरणों की मदद से, iOS क्लाइंट में इंस्टेंस आईडी लागू किया जा सकता है. ध्यान दें कि इन उदाहरणों में GCM स्कोप का इस्तेमाल किया गया है. इसका इस्तेमाल, Firebase Cloud Messaging के लिए iOS क्लाइंट के टोकन मैनेज करने के लिए किया जाता है.

CocoaPods की डिपेंडेंसी सेट अप करना

डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, इंस्टेंस आईडी में CocoaPods का इस्तेमाल किया जाता है. टर्मिनल विंडो खोलें और अपने ऐप्लिकेशन के Xcode प्रोजेक्ट की जगह पर जाएं. अगर आपने अपने ऐप्लिकेशन के लिए अब तक कोई Podfile नहीं बनाया है, तो अब बनाएं:

pod init

अपने ऐप्लिकेशन के लिए बनाया गया Podfile खोलें और इसमें यह जोड़ें:

pod 'FirebaseInstanceId'

फ़ाइल सेव करें और चलाएं:

pod install

इससे आपके ऐप्लिकेशन के लिए, .xcworkspace फ़ाइल बनती है. आने वाले समय में अपने ऐप्लिकेशन को बेहतर बनाने के लिए, इस फ़ाइल का इस्तेमाल करें.

टोकन जनरेट करना

टोकन जनरेट करने के लिए, Google Developers Console से जनरेट किए गए प्रोजेक्ट आईडी की ज़रूरत होती है.

NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
  @"apns_token" : <APNS Token data>,
  // 1 if APNS sandbox token else 0
  @"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
                                                scope:scope
                                              options:options
                                              handler:
                  ^(NSString * _Nullable token, NSError * _Nullable error) {
                      // ...
}];

टोकन और इंस्टेंस आईडी मैनेज करना

इंस्टेंस आईडी की मदद से, टोकन मिटाए और रीफ़्रेश किए जा सकते हैं.

टोकन और इंस्टेंस आईडी मिटाना

NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
  if (error) {
    // Failed to delete the token. Check error and do an exponential
    // backoff to retry again.
  } else {
    // Successfully deleted the token.
  }
};
[[FIRInstanceID instanceID]
    deleteTokenWithAuthorizedEntity:authorizedEntity
                              scope:scope
                            handler:handler];

इंस्टेंस आईडी को भी मिटाया जा सकता है. ऐसा करने पर, अगली बार getInstance() को कॉल करने पर, आपको नया इंस्टेंस आईडी मिलेगा:

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];

टोकन रीफ़्रेश करना

इंस्टेंस आईडी सेवा, टोकन बना सकती है या उन्हें फिर से जनरेट कर सकती है. ऐसा होने पर, एक सूचना भेजी जाएगी. kFIRInstanceIDTokenRefreshNotification नाम की सूचनाओं के लिए, ऑब्ज़र्वर जोड़कर इस सूचना को सुना जा सकता है.

[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];

यह ऑब्ज़र्वर, टोकन बनने से पहले बनाया जाना चाहिए. उदाहरण के लिए, [FIRApp configure] को कॉल करने से पहले. [[FIRInstanceID instanceID] token] को कॉल करके, सबसे नया टोकन वापस पाया जा सकता है.

ध्यान दें कि Cloud Messaging के लिए टोकन जनरेट करने की प्रोसेस को मॉनिटर करने के लिए, एक खास डेलिगेट उपलब्ध है.