Implémentation iOS

Les exemples suivants vous aideront à implémenter un ID d'instance dans un client iOS. Notez que ces exemples utilisent le champ d'application GCM, que vous utilisez pour gérer les jetons d'un client iOS pour Firebase Cloud Messaging.

Configurer vos dépendances CocoaPods

L'ID d'instance utilise CocoaPods pour installer et gérer les dépendances. Ouvrez une fenêtre de terminal et accédez à l'emplacement du projet Xcode de votre application. Si vous n'avez pas encore créé de Podfile pour votre application, créez-en un maintenant:

pod init

Ouvrez le fichier Podfile créé pour votre application et ajoutez les éléments suivants:

pod 'FirebaseInstanceId'

Enregistrez le fichier et exécutez :

pod install

Un fichier .xcworkspace est alors créé pour votre application. Utilisez-le pour tout développement futur sur votre application.

Générer un jeton

Pour générer des jetons, vous devez disposer d'un ID de projet généré par la 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) {
                      // ...
}];

Gérer les jetons et les ID d'instance

L'ID d'instance vous permet de supprimer et d'actualiser les jetons.

Supprimer les jetons et les ID d'instance

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

Vous pouvez également supprimer l'ID d'instance lui-même. Dans ce cas, la prochaine fois que vous appellerez getInstance(), vous obtiendrez un nouvel ID d'instance:

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

Jetons d'actualisation

Le service d'ID d'instance peut créer ou régénérer des jetons. Dans ce cas, une notification vous est envoyée. Vous pouvez écouter cette notification en ajoutant un observateur nommé kFIRInstanceIDTokenRefreshNotification pour les notifications.

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

Cet observateur doit être créé avant la création du jeton, par exemple avant d'appeler [FIRApp configure]. Vous pouvez récupérer le dernier jeton en appelant [[FIRInstanceID instanceID] token].

Notez qu'un délégué spécifique est disponible pour observer la génération de jetons pour Cloud Messaging.