Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

บริการ Firebase หลายรายการใช้ Instance ID เพื่อขับเคลื่อนคุณสมบัติ:

  • การวิเคราะห์
  • Crashlytics
  • การส่งข้อความบนคลาวด์
  • การกำหนดค่าระยะไกล

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

บริการที่ใช้ Instance ID เพื่อระบุการติดตั้งยังใช้เป็นกุญแจสำคัญในการเชื่อมโยงข้อมูลที่เกี่ยวข้องกับอุปกรณ์นั้น ตัวอย่างเช่น Crashlytics ใช้ Instance ID เพื่อบันทึกข้อขัดข้องที่เกิดขึ้นบนอุปกรณ์, Remote Config ใช้เพื่อดึงข้อมูลการกำหนดค่า และ Analytics ใช้ Instance ID เพื่อติดตามผู้ชมเฉพาะ

โดยทั่วไป ข้อมูลที่เชื่อมโยงกับ Instance ID จะ ไม่ ระบุตัวตนได้ แต่ก็ยังมีประโยชน์ในการให้ตัวเลือกแก่ผู้ใช้ในการจัดการข้อมูล ด้วยเหตุนี้ Firebase จึงมี 2 วิธีในการจัดการการรวบรวมข้อมูลที่เกี่ยวข้องกับ Instance-ID:

  • ลบ ID อินสแตนซ์ คุณสามารถลบ ID อินสแตนซ์ได้ด้วยการเรียก API ฝั่งเซิร์ฟเวอร์หรือไคลเอ็นต์ การลบ ID อินสแตนซ์จะลบ ID นั้นเองและข้อมูลทั้งหมดที่เกี่ยวข้อง
  • ปิดใช้งานบริการที่สร้าง ID บริการ Firebase ส่วนใหญ่ที่ใช้ Instance ID จะสร้าง ID ใหม่โดยอัตโนมัติหากไม่มีอยู่ในอุปกรณ์เมื่อเริ่มทำงาน เพื่อให้แน่ใจว่าแอปของคุณจะไม่สร้าง ID อินสแตนซ์ที่ไม่ต้องการ ให้ปิดใช้งานการเริ่มต้นอัตโนมัติสำหรับบริการเหล่านั้น

ลบ ID อินสแตนซ์

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

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

ลบ ID ด้วยการเรียก API ไคลเอนต์

หากต้องการลบ ID ที่สร้างโดยบริการ Firebase ให้เรียกวิธีการที่เหมาะสมจาก Firebase Instance ID API:

Swift

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

วัตถุประสงค์-C

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

ลบ ID ด้วยการเรียก API ของเซิร์ฟเวอร์

หากต้องการลบ ID อินสแตนซ์ที่มีการเรียก API ของเซิร์ฟเวอร์ ให้ เพิ่ม Firebase Admin SDK ไปยังเซิร์ฟเวอร์ของคุณ หากคุณยังไม่ได้ดำเนินการ

เมื่อเพิ่มเข้าไปแล้ว ให้ลบ ID ผ่านการเรียกใช้ฟังก์ชันการลบ ID อินสแตนซ์ในภาษาที่คุณเลือก:

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)

ไป

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)
}

เมื่อคุณลบ ID อินสแตนซ์ด้วยการเรียก API ของเซิร์ฟเวอร์ บริการ Firebase จะลบข้อมูลที่เกี่ยวข้อง หยุดรับข้อมูลใหม่สำหรับ ID นั้น และแจ้งแอปไคลเอนต์ว่า ID นั้นถูกลบภายในสองสามวัน บริการบางอย่างของแอปอาจประสบปัญหาการทำงานลดลง จนกว่า Firebase จะแจ้งแอปไคลเอ็นต์

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

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

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

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

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