Poniższe przykłady pomogą Ci wdrożyć identyfikator instancji w kliencie iOS. Pamiętaj, że w tych przykładach używany jest zakres GCM, który służy do zarządzania tokenami klienta iOS w przypadku Komunikacji w chmurze Firebase.
Konfigurowanie zależności CocoaPods
Identyfikator instancji używa CocoaPods do instalacji zależności i zarządzania nimi. Otwórz okno terminala i przejdź do lokalizacji projektu Xcode odpowiadającego Twojej aplikacji. Jeśli nie masz jeszcze pliku Podfile dla swojej aplikacji, utwórz go teraz:
pod init
Otwórz plik Podfile utworzony na potrzeby aplikacji i dodaj te wiersze:
pod 'FirebaseInstanceId'
Zapisz plik i uruchom:
pod install
Spowoduje to utworzenie pliku .xcworkspace dla Twojej aplikacji. Używaj tego pliku we wszystkich przyszłych procesach związanych z programowaniem aplikacji.
Generowanie tokena
Do generowania tokenów wymagany jest identyfikator projektu wygenerowany przez 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) {
                      // ...
}];
Zarządzanie tokenami i identyfikatorami instancji
Identyfikator instancji umożliwia usuwanie i odświeżanie tokenów.
Usuwanie tokenów i identyfikatorów instancji
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];
Możesz też usunąć sam identyfikator instancji. W takim przypadku przy następnym wywołaniu funkcji getInstance() otrzymasz nowy identyfikator instancji:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];
Tokeny odświeżania
Usługa Instance ID może tworzyć lub ponownie generować tokeny. W takim przypadku otrzymasz powiadomienie. Możesz odsłuchać to powiadomienie, dodając obserwatora powiadomień o nazwie kFIRInstanceIDTokenRefreshNotification.
[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];
Obserwator musi zostać utworzony przed utworzeniem tokena, np. przed wywołaniem funkcji [FIRApp configure]. Najnowszy token można pobrać, wywołując funkcję [[FIRInstanceID instanceID] token].
Pamiętaj, że do obserwowania generowania tokenów na potrzeby Cloud Messaging dostępny jest specjalny delegat.