Implementazione iOS

I seguenti esempi ti aiuteranno a implementare l'ID istanza in un client iOS. Tieni presente che questi esempi utilizzano l'ambito GCM, che utilizzeresti per gestire i token per un client iOS per Firebase Cloud Messaging.

Configura le dipendenze di CocoaPods

L'ID istanza utilizza CocoaPods per installare e gestire le dipendenze. Apri una finestra del terminale e accedi alla posizione del progetto Xcode per l'applicazione. Se non hai ancora creato un podfile per la tua applicazione, creane uno ora:

pod init

Apri il podfile creato per l'applicazione e aggiungi quanto segue:

pod 'FirebaseInstanceId'

Salva il file ed esegui:

pod install

Viene creato un file .xcworkspace per l'applicazione. Usa questo file per lo sviluppo futuro dell'applicazione.

Genera un token

La generazione dei token richiede un ID progetto generato da 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) {
                      // ...
}];

Gestisci token e ID istanza

L'ID istanza consente di eliminare e aggiornare i token.

Elimina token e ID istanza

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

Puoi anche eliminare l'ID istanza; in questo caso la prossima volta che chiamerai getInstance() riceverai un nuovo ID istanza:

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

Aggiorna token

Il servizio ID istanza può creare o rigenerare token. In questo caso, viene inviata una notifica. Puoi ascoltare questa notifica aggiungendo un osservatore per le notifiche denominato kFIRInstanceIDTokenRefreshNotification.

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

Questo osservatore deve essere creato prima del token, ad esempio prima di chiamare [FIRApp configure]. Il token più recente può essere recuperato chiamando [[FIRInstanceID instanceID] token].

Tieni presente che per osservare la generazione di token per Cloud Messaging, è disponibile un delegato specifico.