รหัสอินสแตนซ์จะระบุการติดตั้งแอปของคุณแต่ละรายการ เนื่องจากแต่ละอินสแตนซ์ รหัสจะไม่ซ้ำกันสำหรับแต่ละแอปและอุปกรณ์ ทำให้สามารถให้บริการ Firebase เพื่ออ้างถึงอินสแตนซ์ของแอปที่เจาะจง ตัวอย่างเช่น Cloud Messaging ใช้ รหัสอินสแตนซ์เพื่อกำหนดว่าจะส่งข้อความถึงอุปกรณ์ใด
บริการ Firebase หลายบริการใช้รหัสอินสแตนซ์เพื่อขับเคลื่อนฟีเจอร์ต่างๆ ดังนี้
- Analytics
- Crashlytics
- Cloud Messaging
- Remote Config
จัดการข้อมูลแอปที่เชื่อมโยงกับรหัสอินสแตนซ์
บริการที่ใช้รหัสอินสแตนซ์เพื่อระบุการติดตั้งก็ใช้เป็นคีย์ในการ จะเชื่อมโยงข้อมูลที่เกี่ยวข้องกับอุปกรณ์นั้น ตัวอย่างเช่น Crashlytics ใช้ Remote Config จะใช้รหัสอินสแตนซ์เพื่อบันทึกข้อขัดข้องที่เกิดขึ้นในอุปกรณ์ เพื่อดึงข้อมูลการกำหนดค่า และ Analytics จะใช้รหัสอินสแตนซ์ในการติดตาม ผู้ชมกลุ่มใดกลุ่มหนึ่งโดยเฉพาะ
โดยทั่วไปแล้ว ข้อมูลที่เชื่อมโยงกับรหัสอินสแตนซ์จะไม่ได้ระบุตัวตน แต่การให้ทางเลือกแก่ผู้ใช้ในการจัดการก็มีประโยชน์เช่นกัน กับสิ่งนั้น Firebase มีวิธีจัดการการเก็บรวบรวมข้อมูลที่เกี่ยวข้องกับรหัสอินสแตนซ์ 2 วิธีดังนี้
- ลบรหัสอินสแตนซ์ คุณสามารถลบรหัสอินสแตนซ์ที่มีเซิร์ฟเวอร์ หรือ การเรียก API ฝั่งไคลเอ็นต์ การลบรหัสอินสแตนซ์จะเป็นการลบรหัสและข้อมูลทั้งหมดออกด้วย ที่เกี่ยวข้อง
- ปิดใช้บริการที่สร้างรหัส บริการ Firebase ส่วนใหญ่ที่ใช้อินสแตนซ์ รหัสจะสร้างรหัสใหม่โดยอัตโนมัติหากไม่มีรหัสในอุปกรณ์ในขณะที่ เริ่มต้น เพื่อให้มั่นใจว่าแอปจะไม่สร้างรหัสอินสแตนซ์ที่ไม่ต้องการ ให้ปิดใช้ การกำหนดค่าเริ่มต้นอัตโนมัติสำหรับบริการเหล่านั้น
ลบรหัสอินสแตนซ์
การลบรหัสอินสแตนซ์จะลบข้อมูลที่เชื่อมโยงกับรหัสดังกล่าวในส่วน บริการ Firebase ที่ระบุไว้ด้านบน จึงทำให้การลบบัตรประจำตัวเป็นเครื่องมือที่มีประโยชน์ การล้างข้อมูลผู้ใช้ แต่ก็ยังมีข้อควรระวัง นั่นคือหากคุณใช้ บริการที่อาศัยรหัสอินสแตนซ์ การลบรหัสจะล้างข้อมูลทั้งหมด ให้พวกเขา
บริการรหัสอินสแตนซ์จะสร้างรหัสใหม่ภายใน 2-3 วัน เว้นแต่คุณจะ ปิดใช้บริการสร้างอินสแตนซ์ทั้งหมดในแอปของคุณ Firebase จะพิจารณา รหัสที่สร้างขึ้นใหม่เป็นอินสแตนซ์ของแอปใหม่ล่าสุด และไม่ได้เชื่อมโยงกับอินสแตนซ์ดังกล่าว รหัสก่อนหน้าด้วยวิธีใดๆ ก็ตาม
ลบรหัสที่มีการเรียก API ของไคลเอ็นต์
หากต้องการลบรหัสที่สร้างโดยบริการ Firebase ให้เรียกใช้เมธอดที่เหมาะสมจาก API สำหรับรหัสอินสแตนซ์ของ Firebase
Swift
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
Objective-C
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Android
FirebaseInstanceId.deleteInstanceId();
ลบรหัสที่มีการเรียก API ของเซิร์ฟเวอร์
หากต้องการลบรหัสอินสแตนซ์ที่มีการเรียก API เซิร์ฟเวอร์ ให้เพิ่ม Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณ หากยังไม่ได้ดำเนินการ
เมื่อเพิ่มแล้ว ให้ลบรหัสผ่านการเรียกใช้ฟังก์ชันการลบรหัสอินสแตนซ์ ในภาษาที่คุณต้องการ:
Node.js
// An Instance ID sent from a client service SDK
const idToDelete = 'INSTANCE_ID';
admin.instanceId().deleteInstanceId(idToDelete);
Java
// An Instance ID sent from a client service SDK
String idToDelete = "INSTANCE_ID";
FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();
Python
from firebase_admin import instance_id
# An Instance ID sent from a client service SDK
id_to_delete = 'INSTANCE_ID'
instance_id.delete_instance_id(id_to_delete)
Go
client, err := app.InstanceId(ctx)
if err != nil {
log.Fatalln("error initializing client", err)
}
iidToDelete := "INSTANCE_ID"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
log.Fatalln("error deleting iid", err)
}
เมื่อคุณลบรหัสอินสแตนซ์ที่มีการเรียก API ของเซิร์ฟเวอร์ บริการ Firebase จะลบ ข้อมูลที่เกี่ยวข้อง หยุดรับข้อมูลใหม่สำหรับรหัสนั้น และภายใน 2-3 วัน แจ้งแอปไคลเอ็นต์ว่ารหัสถูกลบแล้ว จนกว่า Firebase จะแจ้งลูกค้า บริการบางอย่างของแอปอาจมีฟังก์ชันการทำงานลดลง
หากต้องการลบรหัสอินสแตนซ์ปัจจุบันและใช้ Firebase ทันที บริการใหม่ที่มีรหัสอิสระใหม่ ใช้ API ไคลเอ็นต์รายการใดรายการหนึ่งข้างต้นเพื่อ จัดการการลบ
ปิดใช้การสร้างรหัสอินสแตนซ์
บริการที่ใช้รหัสอินสแตนซ์จะสร้างรหัสใหม่โดยอัตโนมัติเมื่อ เริ่มต้นในแอปที่ยังไม่มี โดยทั่วไป บริการเหล่านี้ เริ่มต้นโดยอัตโนมัติเมื่อแอปของคุณเปิดตัวด้วย วิธีปิดใช้อินสแตนซ์ การสร้างรหัส คุณต้องปิดใช้การกำหนดค่าเริ่มต้นอัตโนมัติสำหรับบริการที่ใช้ ให้พวกเขา
แนวทางที่ใช้กันโดยทั่วไปคือ การให้ตัวเลือกแก่ผู้ใช้ การเลือกใช้การเก็บรวบรวมข้อมูล: ปิดใช้การกำหนดค่าเริ่มต้นอัตโนมัติสำหรับ บริการที่ใช้รหัสอินสแตนซ์ ให้ใช้กล่องโต้ตอบที่แจ้ง ผู้ใช้ที่ให้ความยินยอมในการเก็บรวบรวมข้อมูลและเปิดใช้บริการอีกครั้งด้วยตนเอง เมื่อได้รับความยินยอม
อ่านคู่มือด้านล่างเพื่อดูวิธีปิดใช้งานการเริ่มต้นอัตโนมัติสำหรับ บริการที่ใช้รหัสอินสแตนซ์และเริ่มต้นบริการเหล่านั้นด้วยตนเองแทน
- Cloud Messaging: ป้องกันการเริ่มต้นโดยอัตโนมัติ (Android) หรือป้องกันการเริ่มต้นโดยอัตโนมัติ (iOS+)
- Crash Reporting: เปิดใช้การรายงานการเลือกใช้
- Analytics: กำหนดค่าการรวบรวมข้อมูล Analytics