Contoh berikut akan membantu Anda menerapkan Instance ID di klien iOS. Perlu diperhatikan bahwa contoh ini menggunakan cakupan GCM, yang akan Anda gunakan untuk mengelola token bagi klien iOS untuk Firebase Cloud Messaging.
Menyiapkan dependensi CocoaPods Anda
ID instance menggunakan CocoaPods untuk menginstal dan mengelola dependensi. Buka jendela terminal dan arahkan ke lokasi project Xcode untuk aplikasi Anda. Jika Anda belum membuat Podfile untuk aplikasi, buat Podfile sekarang:
pod init
Buka Podfile yang dibuat untuk aplikasi Anda dan tambahkan yang berikut ini:
pod 'FirebaseInstanceId'
Simpan file dan jalankan:
pod install
Tindakan ini akan membuat file .xcworkspace
untuk aplikasi Anda. Gunakan file ini untuk semua
pengembangan aplikasi Anda pada masa mendatang.
Membuat token
Pembuatan token memerlukan Project ID yang dibuat oleh 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) {
// ...
}];
Mengelola token dan ID Instance
ID instance memungkinkan Anda menghapus dan memuat ulang token.
Menghapus token dan ID Instance
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];
Anda juga dapat menghapus ID Instance itu sendiri, yang dalam hal ini saat berikutnya Anda memanggil getInstance()
, Anda akan mendapatkan ID Instance baru:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Token refresh
Layanan ID Instance dapat membuat atau menghasilkan kembali token. Jika ini terjadi, notifikasi akan dikirim. Anda dapat memproses notifikasi ini dengan menambahkan
pengamat untuk notifikasi yang bernama kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Observer ini harus dibuat sebelum token dibuat, misalnya sebelum memanggil [FIRApp configure]
. Token terbaru dapat diambil dengan
memanggil [[FIRInstanceID instanceID] token]
.
Perlu diperhatikan bahwa untuk mengamati pembuatan token untuk Cloud Messaging, ada delegasi khusus yang tersedia.