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 useresti 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 vai alla posizione del progetto Xcode per la tua applicazione. Se non hai ancora creato un Podfile per l'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. Utilizza questo file per lo sviluppo futuro della tua applicazione.

Genera un token

Per generare token è necessario 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 stesso. In questo caso, la prossima volta che chiami 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 della creazione del token, ad esempio prima di chiamare [FIRApp configure]. Puoi recuperare il token più recente chiamando [[FIRInstanceID instanceID] token].

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