จัดการข้อมูลรหัสอินสแตนซ์

รหัสอินสแตนซ์จะระบุการติดตั้งแอปของคุณแต่ละรายการ เนื่องจากรหัสอินสแตนซ์แต่ละรายการจะไม่ซ้ำกันสำหรับแอปและอุปกรณ์หนึ่งๆ รหัสอินสแตนซ์เหล่านี้จึงช่วยให้บริการ Firebase อ้างถึงอินสแตนซ์แอปที่เฉพาะเจาะจงได้ ตัวอย่างเช่น Cloud Messaging ใช้รหัสอินสแตนซ์เพื่อกำหนดว่าจะส่งข้อความถึงอุปกรณ์ใด

บริการ Firebase หลายบริการใช้รหัสอินสแตนซ์เพื่อขับเคลื่อนฟีเจอร์ต่างๆ ดังนี้

  • Analytics
  • Crashlytics
  • Cloud Messaging
  • การกำหนดค่าระยะไกล

จัดการข้อมูลแอปที่เชื่อมโยงกับรหัสอินสแตนซ์

บริการที่ใช้รหัสอินสแตนซ์เพื่อระบุการติดตั้งก็ใช้เป็นคีย์ในการเชื่อมโยงข้อมูลที่เกี่ยวข้องกับอุปกรณ์ดังกล่าวด้วย ตัวอย่างเช่น Crashlytics ใช้รหัสอินสแตนซ์เพื่อบันทึกข้อขัดข้องที่เกิดขึ้นในอุปกรณ์ การกำหนดค่าระยะไกลใช้ตัวระบุเพื่อดึงข้อมูลการกำหนดค่า ขณะที่ 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 ของไคลเอ็นต์รายการใดรายการหนึ่งด้านบนเพื่อจัดการการลบ

ปิดใช้การสร้างรหัสอินสแตนซ์

บริการที่ใช้รหัสอินสแตนซ์จะสร้างรหัสใหม่โดยอัตโนมัติเมื่อมีการเริ่มต้นในแอปที่ยังไม่มีรหัสอินสแตนซ์ในขณะนี้ โดยปกติ บริการเหล่านั้นจะเริ่มต้นโดยอัตโนมัติ เมื่อมีการเปิดตัวแอป หากต้องการปิดใช้การสร้างรหัสอินสแตนซ์ คุณต้องปิดใช้การกำหนดค่าเริ่มต้นอัตโนมัติสำหรับบริการที่ใช้รหัสอินสแตนซ์ดังกล่าว

วิธีทั่วไปคือ ให้ผู้ใช้มีตัวเลือกในการเลือกเก็บรวบรวมข้อมูล เช่น ปิดใช้การเริ่มต้นอัตโนมัติสำหรับบริการที่ใช้รหัสอินสแตนซ์ ใช้กล่องโต้ตอบที่แจ้งให้ผู้ใช้ยินยอมให้มีการเก็บรวบรวมข้อมูล และเปิดใช้บริการอีกครั้งด้วยตนเองเมื่อคุณได้รับความยินยอม

อ่านคู่มือด้านล่างเพื่อดูวิธีปิดใช้การเริ่มต้นอัตโนมัติสำหรับบริการที่ใช้รหัสอินสแตนซ์ และเริ่มการทำงานด้วยตนเองแทน