Следующие примеры помогут вам реализовать идентификатор экземпляра в клиенте iOS. Обратите внимание, что в этих примерах используется область GCM, которую вы могли бы использовать для управления токенами iOS-клиента для Firebase Cloud Messaging .
Настройте зависимости CocoaPods
ID экземпляра использует CocoaPods для установки зависимостей и управления ими. Откройте окно терминала и перейдите к местоположению проекта Xcode для вашего приложения. Если вы еще не создали подфайл для своего приложения, создайте его сейчас:
pod init
Откройте подфайл, созданный для вашего приложения, и добавьте следующее:
pod 'FirebaseInstanceId'
Сохраните файл и запустите:
pod install
При этом для вашего приложения будет создан файл .xcworkspace
. Используйте этот файл для всей будущей разработки вашего приложения.
Создать токен
Для создания токенов требуется идентификатор проекта, сгенерированный консолью разработчиков Google .
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) {
// ...
}];
Управление токенами и идентификаторами экземпляров
Идентификатор экземпляра позволяет удалять и обновлять токены.
Удаление токенов и идентификаторов экземпляров
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];
Вы также можете удалить сам идентификатор экземпляра, и в этом случае при следующем вызове getInstance()
вы получите новый идентификатор экземпляра:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Обновить токены
Служба идентификатора экземпляра может создавать или восстанавливать токены. Когда это произойдет, будет отправлено уведомление. Вы можете прослушивать это уведомление, добавив наблюдателя для уведомлений с именем kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Этот наблюдатель должен быть создан до создания токена, например, перед вызовом [FIRApp configure]
. Последний токен можно получить, вызвав [[FIRInstanceID instanceID] token]
.
Обратите внимание, что для наблюдения за генерацией токенов для Cloud Messaging доступен специальный делегат .