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