Os exemplos a seguir ajudarão você a implementar o ID da instância em um cliente iOS. Observe que esses exemplos usam o escopo do GCM, que você usaria para gerenciar tokens de um cliente iOS para Firebase Cloud Messaging:
Configurar as dependências de CocoaPods
O ID da instância usa CocoaPods para instalar e gerenciar dependências. Abra uma janela do terminal e navegue até o local do projeto Xcode do seu aplicativo. Se você ainda não tiver criado um Podfile para seu aplicativo, crie um agora:
pod init
Abra o Podfile criado para seu aplicativo e adicione o seguinte:
pod 'FirebaseInstanceId'
Salve o arquivo e execute:
pod install
Isso cria um arquivo .xcworkspace
para o aplicativo. Use esse arquivo futuramente no desenvolvimento do aplicativo.
Gerar um token
A geração de tokens requer um ID de projeto gerado pelo 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) {
// ...
}];
Gerenciar tokens e IDs de instância
O ID da instância permite excluir e atualizar tokens.
Excluir tokens e IDs de instância
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];
Também é possível excluir o próprio ID da instância. Nesse caso, na próxima vez que você chamar
getInstance()
, você receberá um novo ID de instância:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Tokens de atualização
O serviço de código de instância pode criar ou gerar tokens novamente. Quando isso ocorre, um
será enviada uma notificação. Para ouvir essa notificação, adicione um
observador para notificações com o nome kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Esse observador precisa ser criado antes da criação do token, por exemplo
antes de chamar [FIRApp configure]
. O token mais recente pode ser recuperado
chamando [[FIRInstanceID instanceID] token]
.
Para observar a geração de tokens para o Cloud Messaging, há uma delegado específico disponível.