iOS Uygulaması

Aşağıdaki örnekler, Örnek Kimliğini bir iOS istemcisinde uygulamanıza yardımcı olacaktır. Bu örneklerin, Firebase Cloud Messaging için bir iOS istemcisinin jetonlarını yönetmek üzere kullanacağınız GCM kapsamını kullandığını unutmayın.

CocoaPods bağımlılıklarınızı ayarlayın

Örnek Kimliği, bağımlılıkları yüklemek ve yönetmek için CocoaPods'u kullanır. Bir terminal penceresi açın ve uygulamanızın Xcode projesinin konumuna gidin. Uygulamanız için henüz bir Podfile oluşturmadıysanız şimdi bir tane oluşturun:

pod init

Uygulamanız için oluşturulan Podfile'ı açın ve aşağıdakileri ekleyin:

pod 'FirebaseInstanceId'

Dosyayı kaydedin ve şunu çalıştırın:

pod install

Bu işlem, uygulamanız için bir .xcworkspace dosyası oluşturur. Bu dosyayı, uygulamanızın gelecekteki tüm gelişimleri için kullanın.

Jeton oluştur

Jeton oluşturmak için Google Developers Console tarafından oluşturulmuş bir Proje Kimliği gerekir.

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) {
                      // ...
}];

Jetonları ve örnek kimliklerini yönetin

Örnek kimliği, jetonları silip yenilemenize olanak tanır.

Jetonları ve örnek kimliklerini sil

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

Örnek Kimliğinin kendisini de silebilirsiniz. Bu durumda, getInstance() numaralı telefonu tekrar aradığınızda yeni bir Örnek Kimliği alırsınız:

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

Jetonları yenile

Örnek Kimliği hizmeti, jetonlar oluşturabilir veya yeniden oluşturabilir. Bu durumda bir bildirim gönderilir. kFIRInstanceIDTokenRefreshNotification adlı bildirimler için bir gözlemci ekleyerek bu bildirimi dinleyebilirsiniz.

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

Bu gözlemci, jeton oluşturulmadan önce (örneğin, [FIRApp configure] çağrısı yapmadan önce) oluşturulmalıdır. En son jeton, [[FIRInstanceID instanceID] token] çağrısı yapılarak alınabilir.

Cloud Messaging için jeton oluşturmayı gözlemlemek için belirli bir yetki verilmiş olduğunu unutmayın.