Los siguientes ejemplos te ayudarán a implementar el ID de instancia en un cliente para iOS. Ten en cuenta que estos ejemplos usan el alcance de GCM, que usarías para gestionar tokens para un cliente de iOS de Firebase Cloud Messaging.
Configura tus dependencias de CocoaPods
El ID de instancia usa CocoaPods para instalar y administrar dependencias. Abre una ventana de terminal y navega hasta la ubicación del proyecto Xcode correspondiente a tu aplicación. Si aún no creaste un Podfile para tu aplicación, créalo 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. Usa este archivo para todo desarrollo futuro en tu aplicación.
Genera un token
Para generar tokens, se requiere un ID de proyecto que genere Google Play 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 tokens y IDs de instancias
El ID de instancia te permite borrar y actualizar tokens.
Cómo borrar tokens y IDs de instancia
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 instancia en sí, en cuyo caso, la próxima vez que llames a getInstance()
, obtendrás un ID de instancia nuevo:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Tokens de actualización
El servicio de ID de instancia puede crear o volver a generar tokens. Cuando esto suceda, se enviará una notificación. Para escuchar esta notificación, agrega un observador para notificaciones llamado kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Este observador se debe crear antes de crear el token, por ejemplo, antes de llamar a [FIRApp configure]
. Para recuperar el token más reciente, llama a [[FIRInstanceID instanceID] token]
.
Ten en cuenta que, para observar la generación de tokens para Cloud Messaging, hay un delegado específico disponible.