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 dengan 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 mencari tahu cara menonaktifkan inisialisasi otomatis untuk layanan yang menggunakan ID Instance dan melakukan inisialisasi secara manual:
- Cloud Messaging: Mencegah Inisialisasi otomatis (Android) atau Mencegah Inisialisasi otomatis (iOS+)
- Crash Reporting: Mengaktifkan Pelaporan Keikutsertaan
- Analytics: Mengonfigurasi Pengumpulan Data Analytics