Los siguientes ejemplos te ayudarán a implementar un ID de instancia en un cliente de iOS. Ten en cuenta que estos ejemplos utilizan el alcance de GCM, que usarías para administrar tokens para un cliente de iOS para Firebase Cloud Messaging.
Configura tus dependencias de CocoaPods
Instance ID usa CocoaPods para instalar y administrar las dependencias. Abre una ventana de terminal y navega a la ubicación de la proyecto de Xcode para tu aplicación. Si aún no creaste un Podfile para tu aplicación, crea una ahora:
pod init
Abre el Podfile creado para tu aplicación y agrega lo siguiente:
pod 'FirebaseInstanceId'
Guarda el archivo y ejecuta:
pod install
Esto crea un archivo .xcworkspace
para tu aplicación. Usar este archivo para todos
el desarrollo futuro de tu aplicación.
Genera un token
Para generar tokens, necesitas un ID del proyecto que genere 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) {
// ...
}];
Administra los IDs de instancia y tokens
El ID de instancia te permite borrar y actualizar tokens.
Borrar IDs de instancia y tokens
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];
También puedes borrar el ID de la instancia, en cuyo caso, la próxima vez que llames
getInstance()
, obtendrás un nuevo ID de instancia:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Tokens de actualización
El servicio Instance ID puede crear o volver a generar tokens. Cuando esto ocurre, un
se enviará una notificación. Para escuchar esta notificación, agrega un
de notificaciones llamado kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Por ejemplo, este observador debe crearse antes que el token.
antes de llamar a [FIRApp configure]
. El último token lo puede recuperar
llamando a [[FIRInstanceID instanceID] token]
.
Para observar la generación de tokens para Cloud Messaging, hay un delegado específico disponible.