Implementacja na iOS

Podane niżej przykłady pomogą Ci wdrożyć identyfikator instancji w kliencie iOS. Zwróć uwagę, że w tych przykładach używany jest zakres GCM, którego użyjesz do zarządzaj tokenami dla klienta iOS dla Komunikacja w chmurze Firebase.

Skonfiguruj zależności CocoaPods

Identyfikator instancji używa CocoaPods do instalacji i zarządzać zależnościami. Otwórz okno terminala i przejdź do lokalizacji Projekt Xcode dla Twojej aplikacji. Jeśli nie masz jeszcze pliku Podfile dla swojej aplikacji, utwórz teraz:

pod init

Otwórz plik Podfile utworzony dla Twojej aplikacji i dodaj:

pod 'FirebaseInstanceId'

Zapisz plik i uruchom:

pod install

Spowoduje to utworzenie pliku .xcworkspace dla aplikacji. Użyj tego pliku we wszystkich programowanie aplikacji w przyszłości.

Generowanie tokena

Generowanie tokenów wymaga identyfikatora projektu wygenerowanego w 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 pozwala usuwać i odświeżać tokeny.

Usuń tokeny i identyfikatory 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 getInstance() otrzymasz nowy identyfikator instancji:

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

Odśwież tokeny

Usługa identyfikatora instancji może tworzyć i ponownie generować tokeny. W takim przypadku zostanie wysłane powiadomienie. Możesz odsłuchać to powiadomienie, dodając obserwator powiadomień o nazwie kFIRInstanceIDTokenRefreshNotification.

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

Należy go utworzyć przed utworzeniem tokena, na przykład przed nawiązaniem połączenia [FIRApp configure]. Ostatni token można pobrać przez Dzwonię pod [[FIRInstanceID instanceID] token].

Pamiętaj, że do obserwowania generowania tokenów dla Komunikacji w chmurze istnieje dostępne przekazywanie dostępu.