ตัวอย่างต่อไปนี้จะช่วยคุณติดตั้งใช้งานรหัสอินสแตนซ์ในไคลเอ็นต์ iOS โปรดทราบว่าตัวอย่างเหล่านี้ใช้ขอบเขต GCM ซึ่งคุณจะใช้เพื่อ จัดการโทเค็นสำหรับไคลเอ็นต์ iOS ของ Firebase Cloud Messaging
ตั้งค่าทรัพยากร Dependency ของ CocoaPods
รหัสอินสแตนซ์ใช้ CocoaPods ในการติดตั้งและ จัดการทรัพยากร Dependency เปิดหน้าต่างเทอร์มินัลและไปที่ตำแหน่งของโปรเจ็กต์ Xcode สำหรับแอปพลิเคชัน หากยังไม่ได้สร้าง Podfile สำหรับแอปพลิเคชัน ให้สร้างเลยตอนนี้โดยทำดังนี้
pod init
เปิด Podfile ที่สร้างขึ้นสำหรับแอปพลิเคชัน แล้วเพิ่มโค้ดต่อไปนี้
pod 'FirebaseInstanceId'
บันทึกไฟล์และเรียกใช้คำสั่งต่อไปนี้
pod install
การดำเนินการนี้จะสร้างไฟล์ .xcworkspace ให้กับแอปพลิเคชัน ใช้ไฟล์นี้ในการพัฒนาทั้งหมดที่จะเกิดขึ้นในอนาคตสำหรับแอปพลิเคชัน
สร้างโทเค็น
การสร้างโทเค็นต้องใช้รหัสโปรเจ็กต์ที่สร้างโดย 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) {
// ...
}];
จัดการโทเค็นและรหัสอินสแตนซ์
รหัสอินสแตนซ์ช่วยให้คุณลบและรีเฟรชโทเค็นได้
ลบโทเค็นและรหัสอินสแตนซ์
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);
}
}];
รีเฟรชโทเค็น
บริการรหัสอินสแตนซ์อาจสร้างหรือสร้างโทเค็นใหม่ เมื่อเกิดเหตุการณ์นี้ ระบบจะส่งการแจ้งเตือน คุณสามารถรับฟังการแจ้งเตือนนี้ได้โดยเพิ่ม Observer สำหรับการแจ้งเตือนที่ชื่อว่า kFIRInstanceIDTokenRefreshNotification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
ต้องสร้าง Observer นี้ก่อนที่จะสร้างโทเค็น เช่น ก่อนเรียก [FIRApp configure] คุณสามารถดึงโทเค็นล่าสุดได้โดยเรียก [[FIRInstanceID instanceID] token]
โปรดทราบว่าสำหรับการสังเกตการสร้างโทเค็นสำหรับ Cloud Messaging จะมี Delegate เฉพาะ ให้ใช้งาน