Mengelola data ID Instance

ID Instance mengidentifikasi penginstalan individual aplikasi Anda. Karena setiap ID Instance bersifat unik untuk aplikasi dan perangkat tertentu, ID tersebut memberikan cara bagi layanan Firebase untuk merujuk ke instance aplikasi tertentu. Misalnya, Cloud Messaging menggunakan ID Instance untuk menentukan perangkat mana yang akan dikirimi pesan.

Beberapa layanan Firebase menggunakan ID Instance untuk mengaktifkan fiturnya:

  • Analytics
  • Crashlytics
  • Cloud Messaging
  • Remote Config

Mengelola data aplikasi yang berkaitan dengan ID Instance

Layanan yang menggunakan ID Instance untuk mengidentifikasi penginstalan juga menggunakannya sebagai kunci untuk menghubungkan data yang relevan dengan perangkat tersebut. Misalnya, Crashlytics menggunakan ID Instance untuk mencatat error yang terjadi pada perangkat, Remote Config menggunakannya untuk mengambil konfigurasi, dan Analytics menggunakan ID Instance untuk melacak audience tertentu.

Data yang berkaitan dengan ID Instance umumnya tidak mengidentifikasi secara pribadi, tetapi sebaiknya beri pengguna opsi untuk mengelolanya. Untuk itu, Firebase menyediakan dua cara untuk mengelola pengumpulan data terkait ID Instance:

  • Menghapus ID Instance. Anda dapat menghapus ID Instance dengan panggilan API server atau API sisi klien. Menghapus Instance ID akan menghapus ID itu sendiri dan semua data yang terkait.
  • Menonaktifkan layanan yang menghasilkan ID. Sebagian besar layanan Firebase yang menggunakan ID Instance akan otomatis menghasilkan ID baru jika belum ada ID yang tersedia pada perangkat saat layanan itu dimulai. Untuk memastikan aplikasi Anda tidak membuat ID Instance yang tidak diinginkan, nonaktifkan inisialisasi otomatis untuk layanan tersebut.

Menghapus ID Instance

Dengan menghapus ID Instance, data yang terkait dengan ID tersebut pada layanan Firebase mana pun yang tercantum di atas juga akan dihapus. Oleh karena itu, penghapusan ID menjadi fitur yang berguna untuk menghapus data pengguna, tetapi harap perhatikan: jika Anda menggunakan beberapa layanan yang bergantung pada ID Instance, penghapusan salah satu ID akan menghapus data dari semuanya.

Layanan ID Instance membuat ID baru dalam beberapa hari, kecuali jika Anda menonaktifkan semua layanan pembuatan ID Instance di aplikasi. Firebase menganggap ID yang baru dibuat tersebut sebagai instance aplikasi baru, dan tidak mengaitkannya dengan ID sebelumnya dalam cara apa pun.

Menghapus ID dengan panggilan API klien

Untuk menghapus ID yang dihasilkan oleh layanan Firebase, panggil metode yang sesuai dari API ID Instance 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();

Menghapus ID dengan panggilan API server

Untuk menghapus ID Instance dengan panggilan API server, tambahkan Firebase Admin SDK ke server jika belum melakukannya.

Setelah Firebase Admin SDK ditambahkan, hapus ID melalui panggilan ke fungsi penghapusan ID Instance dalam bahasa pilihan Anda:

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

Saat Anda menghapus ID Instance dengan panggilan API server, layanan Firebase akan menghapus data terkait, menghentikan penerimaan data baru untuk ID tersebut, dan memberi tahu aplikasi klien bahwa ID telah dihapus dalam waktu beberapa hari. Beberapa layanan aplikasi mungkin mengalami penurunan fungsionalitas hingga Firebase memberi tahu aplikasi klien.

Jika ingin menghapus ID Instance yang ada saat ini dan segera menggunakan layanan Firebase dengan ID baru dan independen, gunakan salah satu API Klien di atas untuk menangani penghapusan.

Menonaktifkan pembuatan ID Instance

Layanan yang menggunakan ID Instance akan otomatis menghasilkan ID baru ketika diinisialisasi dalam aplikasi yang belum memiliki ID. Biasanya, layanan tersebut juga otomatis melakukan inisialisasi saat aplikasi Anda diluncurkan. Untuk menonaktifkan pembuatan ID Instance, Anda harus menonaktifkan inisialisasi otomatis untuk layanan yang menggunakannya.

Salah satu pendekatan yang umum adalah memberi pengguna opsi untuk ikut serta dalam pengumpulan data: nonaktifkan inisialisasi otomatis untuk layanan yang menggunakan ID Instance, implementasikan dialog yang meminta pengguna memberikan persetujuan terkait pengumpulan data, dan aktifkan kembali layanan secara manual setelah mendapat izin.

Baca panduan di bawah ini untuk mengetahui cara menonaktifkan inisialisasi otomatis untuk layanan yang menggunakan ID Instance dan melakukan inisialisasi secara manual: