ตัวอย่างต่อไปนี้จะช่วยคุณติดตั้งใช้งาน Instance ID ในไคลเอ็นต์ 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);
}
}];
โทเค็นการรีเฟรช
บริการ Instance ID อาจสร้างหรือสร้างโทเค็นขึ้นมาใหม่ เมื่อเกิดกรณีนี้ ระบบจะส่งการแจ้งเตือน คุณสามารถฟังการแจ้งเตือนนี้ได้โดยเพิ่มออบเซอร์เวอร์สําหรับการแจ้งเตือนชื่อ kFIRInstanceIDTokenRefreshNotification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
คุณต้องสร้างผู้สังเกตการณ์นี้ก่อนสร้างโทเค็น เช่น ก่อนเรียก [FIRApp configure]
คุณเรียกข้อมูลโทเค็นล่าสุดได้โดยโทรไปที่ [[FIRInstanceID instanceID] token]
โปรดทราบว่าหากต้องการตรวจสอบการสร้างโทเค็นสําหรับการรับส่งข้อความในระบบคลาวด์ จะมีตัวแทนที่เฉพาะเจาะจงให้ใช้งาน