Quản lý dữ liệu ID phiên bản

ID phiên bản xác định từng lượt cài đặt ứng dụng của bạn. Vì mỗi ID phiên bản là duy nhất cho một ứng dụng và thiết bị cụ thể nên chúng cung cấp cho các dịch vụ Firebase một cách để tham chiếu đến các phiên bản ứng dụng cụ thể. Ví dụ: Nhắn tin qua đám mây sử dụng ID phiên bản để xác định thiết bị nào sẽ gửi tin nhắn đến.

Một số dịch vụ Firebase sử dụng ID phiên bản để hỗ trợ các tính năng của chúng:

  • phân tích
  • Crashlytics
  • Nhắn tin qua đám mây
  • Cấu hình từ xa

Quản lý dữ liệu ứng dụng được liên kết với ID phiên bản

Các dịch vụ sử dụng ID phiên bản để xác định cài đặt cũng sử dụng chúng làm chìa khóa để liên kết dữ liệu liên quan với thiết bị đó. Ví dụ: Crashlytics sử dụng ID phiên bản để ghi lại sự cố xảy ra trên thiết bị, Cấu hình từ xa sử dụng chúng để tìm nạp cấu hình và Analytics sử dụng ID phiên bản để theo dõi các đối tượng cụ thể.

Dữ liệu được liên kết với ID phiên bản thường không nhận dạng cá nhân nhưng vẫn có thể hữu ích khi cung cấp cho người dùng tùy chọn quản lý dữ liệu đó. Để đạt được mục tiêu đó, Firebase cung cấp hai cách để quản lý việc thu thập dữ liệu liên quan đến ID phiên bản:

  • Xóa ID phiên bản. Bạn có thể xóa ID phiên bản bằng lệnh gọi API phía máy chủ hoặc máy khách. Việc xóa ID phiên bản sẽ xóa chính ID đó và tất cả dữ liệu liên quan đến nó.
  • Tắt các dịch vụ tạo ID. Hầu hết các dịch vụ Firebase sử dụng ID phiên bản đều tự động tạo ID mới nếu không có ID nào trên thiết bị khi chúng khởi động. Để đảm bảo ứng dụng của bạn không tạo ID phiên bản không mong muốn, hãy tắt tính năng tự động khởi tạo cho các dịch vụ đó.

Xóa ID phiên bản

Việc xóa ID phiên bản cũng sẽ xóa dữ liệu được liên kết với ID đó trong bất kỳ dịch vụ Firebase nào được liệt kê ở trên. Điều đó khiến việc xóa ID trở thành một công cụ hữu ích trong việc xóa dữ liệu người dùng nhưng cũng đi kèm với một cảnh báo: nếu bạn đang sử dụng nhiều dịch vụ dựa vào ID phiên bản, việc xóa ID sẽ xóa dữ liệu khỏi tất cả các dịch vụ đó.

Dịch vụ ID phiên bản sẽ tạo một ID mới trong vòng vài ngày, trừ khi bạn tắt tất cả các dịch vụ tạo ID phiên bản trong ứng dụng của mình. Firebase coi ID mới được tạo là một phiên bản ứng dụng hoàn toàn mới và không liên kết ID đó với ID trước đó theo bất kỳ cách nào.

Xóa ID bằng lệnh gọi API ứng dụng khách

Để xóa ID do dịch vụ Firebase tạo, hãy gọi phương thức thích hợp từ API ID phiên bản Firebase:

Nhanh

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

Mục tiêu-C

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

Android

FirebaseInstanceId.deleteInstanceId();

Xóa ID bằng lệnh gọi API máy chủ

Để xóa ID phiên bản có lệnh gọi API máy chủ, hãy thêm SDK quản trị Firebase vào máy chủ của bạn nếu bạn chưa làm vậy.

Sau khi được thêm, hãy xóa ID thông qua lệnh gọi tới chức năng xóa ID phiên bản bằng ngôn ngữ bạn chọn:

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)

Đi

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

Khi bạn xóa ID phiên bản bằng lệnh gọi API máy chủ, dịch vụ Firebase sẽ xóa dữ liệu liên quan, ngừng chấp nhận dữ liệu mới cho ID đó và trong vòng vài ngày sẽ thông báo cho ứng dụng khách rằng ID đã bị xóa. Cho đến khi Firebase thông báo cho ứng dụng khách, một số dịch vụ của ứng dụng có thể bị giảm chức năng.

Nếu bạn muốn xóa ID phiên bản hiện tại và sử dụng ngay các dịch vụ Firebase bằng ID độc lập mới, hãy sử dụng một trong các API ứng dụng khách ở trên để xử lý việc xóa.

Tắt tính năng tạo ID phiên bản

Các dịch vụ sử dụng ID phiên bản sẽ tự động tạo ID mới khi chúng được khởi tạo trong một ứng dụng hiện chưa có ID này. Thông thường, các dịch vụ đó cũng tự động khởi chạy khi ứng dụng của bạn khởi chạy. Để tắt tính năng tạo ID phiên bản, bạn phải tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng chúng.

Một cách tiếp cận phổ biến là cung cấp cho người dùng tùy chọn chọn tham gia thu thập dữ liệu: tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng ID phiên bản, triển khai hộp thoại nhắc người dùng đồng ý thu thập dữ liệu và bật lại dịch vụ theo cách thủ công một lần bạn có sự đồng ý.

Đọc hướng dẫn bên dưới để tìm hiểu cách tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng ID phiên bản và thay vào đó hãy khởi tạo chúng theo cách thủ công:

,

ID phiên bản xác định từng lượt cài đặt ứng dụng của bạn. Vì mỗi ID phiên bản là duy nhất cho một ứng dụng và thiết bị cụ thể nên chúng cung cấp cho các dịch vụ Firebase một cách để tham chiếu đến các phiên bản ứng dụng cụ thể. Ví dụ: Nhắn tin qua đám mây sử dụng ID phiên bản để xác định thiết bị nào sẽ gửi tin nhắn đến.

Một số dịch vụ Firebase sử dụng ID phiên bản để hỗ trợ các tính năng của chúng:

  • phân tích
  • Crashlytics
  • Nhắn tin qua đám mây
  • Cấu hình từ xa

Quản lý dữ liệu ứng dụng được liên kết với ID phiên bản

Các dịch vụ sử dụng ID phiên bản để xác định cài đặt cũng sử dụng chúng làm chìa khóa để liên kết dữ liệu liên quan với thiết bị đó. Ví dụ: Crashlytics sử dụng ID phiên bản để ghi lại sự cố xảy ra trên thiết bị, Cấu hình từ xa sử dụng chúng để tìm nạp cấu hình và Analytics sử dụng ID phiên bản để theo dõi các đối tượng cụ thể.

Dữ liệu được liên kết với ID phiên bản thường không nhận dạng cá nhân nhưng vẫn có thể hữu ích khi cung cấp cho người dùng tùy chọn quản lý dữ liệu đó. Để đạt được mục tiêu đó, Firebase cung cấp hai cách để quản lý việc thu thập dữ liệu liên quan đến ID phiên bản:

  • Xóa ID phiên bản. Bạn có thể xóa ID phiên bản bằng lệnh gọi API phía máy chủ hoặc máy khách. Việc xóa ID phiên bản sẽ xóa chính ID đó và tất cả dữ liệu liên quan đến nó.
  • Tắt các dịch vụ tạo ID. Hầu hết các dịch vụ Firebase sử dụng ID phiên bản đều tự động tạo ID mới nếu không có ID nào trên thiết bị khi chúng khởi động. Để đảm bảo ứng dụng của bạn không tạo ID phiên bản không mong muốn, hãy tắt tính năng tự động khởi tạo cho các dịch vụ đó.

Xóa ID phiên bản

Việc xóa ID phiên bản cũng sẽ xóa dữ liệu được liên kết với ID đó trong bất kỳ dịch vụ Firebase nào được liệt kê ở trên. Điều đó khiến việc xóa ID trở thành một công cụ hữu ích trong việc xóa dữ liệu người dùng nhưng cũng đi kèm với một cảnh báo: nếu bạn đang sử dụng nhiều dịch vụ dựa vào ID phiên bản, việc xóa ID sẽ xóa dữ liệu khỏi tất cả các dịch vụ đó.

Dịch vụ ID phiên bản sẽ tạo một ID mới trong vòng vài ngày, trừ khi bạn tắt tất cả các dịch vụ tạo ID phiên bản trong ứng dụng của mình. Firebase coi ID mới được tạo là một phiên bản ứng dụng hoàn toàn mới và không liên kết ID đó với ID trước đó theo bất kỳ cách nào.

Xóa ID bằng lệnh gọi API ứng dụng khách

Để xóa ID do dịch vụ Firebase tạo, hãy gọi phương thức thích hợp từ API ID phiên bản Firebase:

Nhanh

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

Mục tiêu-C

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

Android

FirebaseInstanceId.deleteInstanceId();

Xóa ID bằng lệnh gọi API máy chủ

Để xóa ID phiên bản có lệnh gọi API máy chủ, hãy thêm SDK quản trị Firebase vào máy chủ của bạn nếu bạn chưa làm vậy.

Sau khi được thêm, hãy xóa ID thông qua lệnh gọi đến chức năng xóa ID phiên bản bằng ngôn ngữ bạn chọn:

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)

Đi

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

Khi bạn xóa ID phiên bản bằng lệnh gọi API máy chủ, dịch vụ Firebase sẽ xóa dữ liệu liên quan, ngừng chấp nhận dữ liệu mới cho ID đó và trong vòng vài ngày sẽ thông báo cho ứng dụng khách rằng ID đã bị xóa. Cho đến khi Firebase thông báo cho ứng dụng khách, một số dịch vụ của ứng dụng có thể bị giảm chức năng.

Nếu bạn muốn xóa ID phiên bản hiện tại và sử dụng ngay các dịch vụ Firebase bằng ID độc lập mới, hãy sử dụng một trong các API ứng dụng khách ở trên để xử lý việc xóa.

Tắt tính năng tạo ID phiên bản

Các dịch vụ sử dụng ID phiên bản sẽ tự động tạo ID mới khi chúng được khởi tạo trong một ứng dụng hiện chưa có ID này. Thông thường, các dịch vụ đó cũng tự động khởi chạy khi ứng dụng của bạn khởi chạy. Để tắt tính năng tạo ID phiên bản, bạn phải tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng chúng.

Một cách tiếp cận phổ biến là cung cấp cho người dùng tùy chọn chọn tham gia thu thập dữ liệu: tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng ID phiên bản, triển khai hộp thoại nhắc người dùng đồng ý thu thập dữ liệu và bật lại dịch vụ theo cách thủ công một lần bạn có sự đồng ý.

Đọc hướng dẫn bên dưới để tìm hiểu cách tắt tính năng tự động khởi tạo cho các dịch vụ sử dụng ID phiên bản và thay vào đó hãy khởi tạo chúng theo cách thủ công: