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

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

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

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

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

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