Aşağıdaki örnekler, iOS istemcisinde örnek kimliğini uygulamanıza yardımcı olacaktır. Bu örneklerde, Firebase Cloud Messaging için bir iOS istemcisinin jetonlarını yönetmek üzere kullanacağınız GCM kapsamının kullanıldığını unutmayın.
CocoaPods bağımlılıklarınızı ayarlama
Örnek Kimliği, bağımlılıkları yüklemek ve yönetmek için CocoaPods'u kullanır. Bir terminal penceresi açın ve uygulamanızın Xcode projesinin konumuna gidin. Uygulamanız için henüz bir Podfile oluşturmadıysanız şimdi oluşturun:
pod init
Uygulamanız için oluşturulan Podfile dosyasını açın ve aşağıdakileri ekleyin:
pod 'FirebaseInstanceId'
Dosyayı kaydedin ve şunu çalıştırın:
pod install
Bu işlem, uygulamanız için bir .xcworkspace
dosyası oluşturur. Bu dosyayı ileride uygulamanızda yapılacak tüm geliştirmeler için kullanın.
Jeton oluşturma
Jeton oluşturmak için Google Developers Console tarafından oluşturulan bir proje kimliği gerekir.
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) {
// ...
}];
Jetonları ve örnek kimliklerini yönetme
Örnek kimliği, jetonları silmenize ve yenilemenize olanak tanır.
Jetonları ve örnek kimliklerini silme
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];
Ayrıca, Instance ID'yi de silebilirsiniz. Bu durumda, bir sonraki getInstance()
çağrısında yeni bir Instance ID alırsınız:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Yenileme jetonları
Örnek Kimliği hizmeti jeton oluşturabilir veya yeniden oluşturabilir. Bu durumda bir bildirim gönderilir. kFIRInstanceIDTokenRefreshNotification
adlı bildirimler için bir gözlemci ekleyerek bu bildirimi dinleyebilirsiniz.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Bu gözlemci, jeton oluşturulmadan önce (örneğin, [FIRApp configure]
çağrılmadan önce) oluşturulmalıdır. En son jeton, [[FIRInstanceID instanceID] token]
çağrılarak alınabilir.
Cloud Messaging için jeton oluşturma işlemini gözlemlemek üzere belirli bir yetkilinin kullanılabildiğini unutmayın.