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

Mã nhận dạng phiên bản xác định các lượt cài đặt riêng lẻ của ứng dụng. Vì mỗi mã phiên bản là duy nhất cho một ứng dụng và thiết bị cụ thể, nên các mã này sẽ giúp các dịch vụ Firebase có cách tham chiếu đến các phiên bản ứng dụng cụ thể. Ví dụ: giải pháp Gửi thông báo qua đám mây sử dụng mã thực thể để xác định thiết bị cần gửi thông báo.

Một số dịch vụ của Firebase sử dụng mã nhận dạng thực thể để hỗ trợ các tính năng của những dịch vụ đó:

  • Analytics
  • Crashlytics
  • Gửi thông báo 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 mã phiên bản

Các dịch vụ sử dụng mã nhận dạng thực thể để xác định lượt cài đặt cũng dùng mã này làm khoá để liên kết dữ liệu có liên quan với thiết bị đó. Ví dụ: Crashlytics sử dụng mã phiên bản để ghi lại các 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, còn Analytics sử dụng mã phiên bản để theo dõi các đối tượng cụ thể.

Dữ liệu liên kết với mã thực thể thường không dùng để nhận dạng cá nhân, nhưng vẫn có thể hữu ích nếu bạn cung cấp cho người dùng lựa chọn quản lý dữ liệu đó. Do đó, Firebase cung cấp 2 cách để quản lý hoạt động thu thập dữ liệu liên quan đến Instance-ID:

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

Xoá mã phiên bản

Khi xoá một mã thực thể, dữ liệu liên kết với mã đó cũng sẽ bị xoá trong bất kỳ dịch vụ Firebase nào nêu trên. Điều đó khiến việc xoá mã nhận dạng trở thành một công cụ hữu ích trong việc xoá 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 Mã phiên bản, thì việc xoá một mã sẽ xoá dữ liệu khỏi tất cả các dịch vụ đó.

Dịch vụ mã nhận dạng thực thể sẽ tạo một mã nhận dạng mới trong vòng vài ngày, trừ phi bạn tắt tất cả các dịch vụ tạo mã thực thể trong ứng dụng. Firebase coi mã nhận dạng mới 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 mã đó với mã nhận dạng trước đó theo bất kỳ cách nào.

Xoá mã nhận dạng có lệnh gọi API ứng dụng

Để xoá những mã nhận dạng do các dịch vụ Firebase tạo, hãy gọi phương thức thích hợp từ API mã phiên bản 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();

Xoá mã nhận dạng có lệnh gọi API máy chủ

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

Sau khi thêm, hãy xoá mã nhận dạng thông qua lệnh gọi đến chức năng xoá mã nhận dạng 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)

Tiến hành

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 xoá mã phiên bản có lệnh gọi API máy chủ, các dịch vụ của Firebase sẽ xoá dữ liệu liên kết, ngừng chấp nhận dữ liệu mới cho mã nhận dạng đó và thông báo cho ứng dụng khách rằng mã nhận dạng đó đã bị xoá trong vòng vài ngày. 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 xoá mã nhận dạng phiên bản hiện tại và sử dụng ngay các dịch vụ Firebase với một mã nhận dạng độ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 xoá.

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

Các dịch vụ sử dụng mã nhận dạng thực thể sẽ tự động tạo một mã nhận dạng mới khi chúng được khởi động trong một ứng dụng hiện chưa có mã nhận dạng 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 mã nhận dạng thực thể, bạn phải tắt tính năng tự động khởi chạy cho các dịch vụ sử dụng các mã này.

Một phương pháp phổ biến là cho phép người dùng chọn tham gia thu thập dữ liệu: tắt tính năng tự động khởi chạy cho các dịch vụ sử dụng mã nhận dạng thực thể, triển khai một hộp thoại nhắc người dùng đồng ý với việc thu thập dữ liệu và bật lại các dịch vụ đó theo cách thủ công sau khi bạn đồng ý.

Hãy đọ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 chạy cho các dịch vụ sử dụng mã thực thể và khởi chạy các dịch vụ đó theo cách thủ công: