پیاده سازی iOS

مثال‌های زیر به شما در پیاده‌سازی Instance ID در یک کلاینت iOS کمک می‌کنند. توجه داشته باشید که این مثال‌ها از محدوده GCM استفاده می‌کنند که برای مدیریت توکن‌ها برای یک کلاینت iOS برای Firebase Cloud Messaging استفاده خواهید کرد.

وابستگی‌های CocoaPods خود را تنظیم کنید

Instance ID از CocoaPods برای نصب و مدیریت وابستگی‌ها استفاده می‌کند. یک پنجره ترمینال باز کنید و به محل پروژه Xcode مربوط به برنامه خود بروید. اگر قبلاً یک Podfile برای برنامه خود ایجاد نکرده‌اید، اکنون یکی ایجاد کنید:

pod init

فایل Podfile ایجاد شده برای برنامه خود را باز کنید و موارد زیر را اضافه کنید:

pod 'FirebaseInstanceId'

فایل را ذخیره و اجرا کنید:

pod install

این یک فایل .xcworkspace برای برنامه شما ایجاد می‌کند. از این فایل برای تمام توسعه‌های آینده برنامه خود استفاده کنید.

یک توکن تولید کنید

تولید توکن‌ها نیاز به یک شناسه پروژه دارد که توسط کنسول توسعه‌دهندگان گوگل تولید شده است.

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

همچنین می‌توانید خودِ شناسه‌ی نمونه (Instance ID) را حذف کنید، که در این صورت دفعه‌ی بعد که getInstance() را فراخوانی کنید، یک شناسه‌ی نمونه‌ی جدید دریافت خواهید کرد:

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

توکن‌های تازه‌سازی

سرویس Instance ID ممکن است توکن‌ها را ایجاد یا بازسازی کند. وقتی این اتفاق می‌افتد، یک اعلان ارسال می‌شود. می‌توانید با اضافه کردن یک ناظر برای اعلان‌ها به نام kFIRInstanceIDTokenRefreshNotification به این اعلان گوش دهید.

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

این ناظر باید قبل از ایجاد توکن ایجاد شود، برای مثال قبل از فراخوانی [FIRApp configure] . آخرین توکن را می‌توان با فراخوانی [[FIRInstanceID instanceID] token] بازیابی کرد.

توجه داشته باشید که برای مشاهده تولید توکن‌ها برای پیام‌رسانی ابری، یک نماینده خاص در دسترس است.