Implementazione iOS

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

Configura le dipendenze CocoaPods

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

pod init

Apri il Podfile creato per la tua applicazione e aggiungi quanto segue:

pod 'FirebaseInstanceId'

Salva il file ed esegui:

pod install

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

Generare un token

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

Gestire i token e gli ID istanza

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

Eliminare 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 stesso, nel qual 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);
      }
    }];

Token di aggiornamento

Il servizio ID istanza può creare o rigenerare token. In questo caso, verrà 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]. L'ultimo token può essere recuperato chiamando [[FIRInstanceID instanceID] token].

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