Les exemples suivants vous aideront à implémenter l'ID d'instance dans un client iOS. Notez que ces exemples utilisent le champ d'application GCM, que vous utiliseriez pour gérer les jetons d'un client iOS pour Firebase Cloud Messaging.
Configurer vos dépendances CocoaPods
Instance ID 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 fichier Podfile pour votre application, faites-le maintenant :
pod init
Ouvrez le fichier Podfile créé pour votre application et ajoutez-y les éléments suivants :
pod 'FirebaseInstanceId'
Enregistrez le fichier et exécutez :
pod install
Cette opération crée un fichier .xcworkspace
pour votre application. Utilisez ce fichier pour tout futur développement de votre application.
Générer un jeton
Pour générer des jetons, vous avez besoin 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, vous obtiendrez un nouvel ID d'instance la prochaine fois que vous appellerez getInstance()
:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Jetons d'actualisation
Le service Instance ID peut créer ou régénérer des jetons. Dans ce cas, une notification vous sera envoyée. Vous pouvez écouter cette notification en ajoutant un observateur pour les notifications nommées kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Cet observateur doit être créé avant le jeton, par exemple avant d'appeler [FIRApp configure]
. Le dernier jeton peut être récupéré en appelant [[FIRInstanceID instanceID] token]
.
Notez qu'il existe un délégué spécifique pour observer la génération de jetons pour Cloud Messaging.