Registration Token dalam notifikasi push: apa itu, cara mendapatkan dan memperbarui

Penulis: IT Sectr Diterbitkan: 2026-03-21 Waktu membaca: 8 mnt

Registration Token adalah pengidentifikasi perangkat unik yang digunakan Firebase Cloud Messaging (FCM) untuk mengirimkan notifikasi push. Setiap aplikasi di setiap perangkat menerima token sendiri, tanpa pengiriman notifikasi tidak mungkin dilakukan. Menurut Firebase, 2025, Registration Token dihasilkan secara otomatis pada saat pertama kali aplikasi dijalankan dan dapat berubah dalam kondisi tertentu.

Poin Utama

  • Registration Token — string yang mengidentifikasi instance aplikasi pada perangkat tertentu untuk FCM.
  • Token dihasilkan secara otomatis saat pertama kali dijalankan atau setelah data aplikasi dihapus.
  • FCM menggunakan token untuk merutekan notifikasi push ke perangkat yang benar.
  • Token dapat berubah — aplikasi harus berlangganan pembaruan melalui onNewToken.
  • Untuk mengirim notifikasi, bagian server harus menyimpan token terbaru dari semua perangkat.

Apa itu Registration Token

Registration Token — string unik hingga 4096 karakter yang ditetapkan Firebase Cloud Messaging untuk setiap instance aplikasi. Token dibentuk berdasarkan pengidentifikasi aplikasi, perangkat, dan akun Google di perangkat.

Struktur dan tujuan token

Registration Token terdiri dari urutan karakter acak yang dikodekan dalam format Base64. FCM menggunakan token ini sebagai alamat pengiriman — bagian server mengirim notifikasi ke token, dan FCM merutekannya ke perangkat tertentu. Tanpa token, tidak mungkin mengarahkan notifikasi push ke pengguna tertentu.

Perbedaan dengan pengidentifikasi lainnya

Registration Token tidak boleh disamakan dengan Device ID (IMEI) atau Advertising ID. Device ID adalah pengidentifikasi perangkat keras, sedangkan Advertising ID digunakan untuk tujuan periklanan. Registration Token terikat pada kombinasi aplikasi dan perangkat, di mana satu perangkat dapat memiliki beberapa token untuk aplikasi yang berbeda.

PengidentifikasiTujuanPerubahan
Registration TokenPengiriman notifikasi push FCMDapat berubah
Device ID (IMEI)Identifikasi perangkatPermanen
Advertising IDIklan bertargetDapat direset
Instance IDMekanisme Firebase usangBerubah saat dihapus

Kapan token dianggap tidak valid

FCM dapat menganggap Registration Token tidak valid dalam beberapa situasi. Jika aplikasi dihapus dari perangkat, token secara otomatis dibatalkan. Saat memulihkan data dari cadangan di perangkat baru, token lama berhenti berfungsi. Firebase mengembalikan status UNREGISTERED saat mencoba mengirim notifikasi ke token usang.

Bagaimana FCM menetapkan Registration Token

Firebase Cloud Messaging menghasilkan Registration Token saat pertama kali aplikasi dijalankan, ketika metode getToken() dipanggil. Prosesnya mencakup verifikasi kredensial Google Play Services dan pendaftaran aplikasi di infrastruktur Firebase.

Proses pendaftaran perangkat

Ketika perangkat pertama kali menjalankan aplikasi dengan FCM SDK terintegrasi, hal berikut terjadi. Firebase SDK memeriksa keberadaan Google Play Services di perangkat. Kemudian SDK mengirim permintaan ke server Firebase, meneruskan pengidentifikasi aplikasi dan informasi perangkat. Server Firebase membuat token baru dan mengembalikannya ke aplikasi.

Mekanika internal FCM

FCM menggunakan arsitektur berdasarkan koneksi jangka panjang. Setelah menerima Registration Token, perangkat membuat koneksi permanen dengan server Firebase melalui protokol STOMP di Android atau saluran APNs di iOS. Ketika bagian server mengirim notifikasi ke token, FCM menemukan perangkat berdasarkan token dan mengirimkan payload.

Kondisi regenerasi token

Registration Token dapat diregenerasi oleh FCM dalam kasus berikut. Saat memulihkan aplikasi dari cadangan di perangkat baru. Saat menghapus dan menginstal ulang aplikasi. Saat membersihkan data aplikasi melalui pengaturan sistem. Saat masuk ke akun Google lain di perangkat. Firebase merekomendasikan untuk selalu memproses callback onNewToken untuk melacak perubahan.

Mendapatkan Registration Token di Android

Di Android, Registration Token diperoleh melalui Firebase Messaging SDK. Prosesnya berbeda untuk versi SDK yang berbeda — di versi baru, FirebaseInstallations API digunakan sebagai pengganti FirebaseInstanceId yang usang.

Cara modern melalui FirebaseInstallations

Mulai dari Firebase SDK versi 21.0.0, metode getToken() dipanggil melalui FirebaseMessaging. Pendekatan ini secara otomatis mengelola siklus hidup token dan berlangganan pembaruannya.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendRegistrationToServer(token)
    }

    private fun sendRegistrationToServer(token: String) {
        // Mengirim token ke bagian server
        Log.d("FCM", "New token: $token")
    }

    init {
        FirebaseMessaging.getInstance()
            .getToken()
            .addOnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.w("FCM", "Gagal mengambil token FCM")
                    return@addOnCompleteListener
                }
                val token = task.result
                sendRegistrationToServer(token)
            }
    }
}

Memproses token di Activity atau ViewModel

Dalam beberapa skenario, token diperlukan bukan di layanan, tetapi langsung di Activity atau ViewModel. Untuk ini, getToken() dapat dipanggil di tempat yang sesuai dalam siklus hidup aplikasi. Penting untuk tidak memanggil metode ini dari thread utama tanpa menangani asinkronisitas.

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        getFCMToken()
    }

    private fun getFCMToken() {
        FirebaseMessaging.getInstance().getToken()
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    val token = task.result
                    Log.d("FCM", "Token: $token")
                }
            }
    }
}

Metode usang FirebaseInstanceId

Di versi lama Firebase SDK (sebelum versi 20.x), token diperoleh melalui FirebaseInstanceId.getInstance().getToken(). Metode ini ditandai sebagai deprecated dan tidak direkomendasikan untuk proyek baru. Pengembang yang memelihara kode legacy harus migrasi ke FirebaseInstallations API.

Mendapatkan Registration Token di iOS

Di iOS, proses mendapatkan Registration Token berbeda secara arsitektural — FCM bekerja melalui Apple Push Notification service (APNs). Firebase SDK menerima device token unik dari APNs, mengonversinya ke format FCM, dan meneruskannya ke aplikasi.

Konfigurasi APNs dan mendapatkan token

Untuk FCM bekerja di iOS, sertifikat atau kunci APNs harus dikonfigurasi di konsol Firebase. Aplikasi harus meminta izin notifikasi melalui UNUserNotificationCenter. Setelah menerima token APNs, Firebase SDK secara otomatis menghasilkan Registration Token.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        application: UIApplication,
        didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        Messaging.messaging().delegate = self
        requestNotificationAuthorization()
        return true
    }

    private func requestNotificationAuthorization() {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound, .badge])
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        Log.d("FCM", "Token: \(fcmToken ?? "")")
        sendTokenToServer(token: fcmToken)
    }
}

Perbedaan antara token iOS dan Android

Registration Token di iOS memiliki ukuran lebih kecil dibandingkan token Android karena didasarkan pada APNs device token. Firebase SDK secara otomatis memperbarui token FCM saat token APNs berubah, yang terjadi saat memulihkan perangkat dari cadangan atau menginstal ulang aplikasi.

Memperbarui dan mengelola Registration Token

Mengelola siklus hidup Registration Token adalah tugas yang sangat penting untuk pengiriman notifikasi push yang stabil. Jika bagian server menyimpan token usang, notifikasi tidak akan terkirim, dan Firebase akan mengembalikan kesalahan UNREGISTERED.

Memantau perubahan token

Firebase SDK menyediakan dua mekanisme untuk melacak perubahan token. Di Android, callback onNewToken digunakan di FirebaseMessagingService. Di iOS — delegasi messaging:didReceiveRegistrationToken. Keduanya dipanggil pada setiap pembaruan token.

kotlin
// Menyimpan token di SharedPreferences dan mengirim ke server
class TokenManager(private val context: Context) {

    companion object {
        private const val PREFS_TOKEN_KEY = "fcm_registration_token"
    }

    fun saveToken(token: String) {
        val prefs = PreferenceManager
            .getDefaultSharedPreferences(context)
        prefs.edit().putString(PREFS_TOKEN_KEY, token).apply()
    }

    fun getSavedToken(): String? {
        val prefs = PreferenceManager
            .getDefaultSharedPreferences(context)
        return prefs.getString(PREFS_TOKEN_KEY, null)
    }
}

Strategi penyimpanan token di server

Bagian server harus menyimpan Registration Token bersama dengan pengidentifikasi pengguna. Saat token diperbarui, klien mengirim token baru ke server, dan server mengganti yang lama. Disarankan untuk menyimpan riwayat token: jika notifikasi tidak terkirim ke token baru, token lama dapat dicoba.

Penanganan kesalahan saat bekerja dengan token

Firebase dapat mengembalikan kesalahan pengambilan token dalam beberapa kasus. Tidak adanya Google Play Services di perangkat — token tidak akan diperoleh. Melebihi batas permintaan FCM — terapkan penundaan eksponensial pada percobaan ulang. Kedaluwarsa token — SDK secara otomatis meminta yang baru.

SituasiHasilTindakan pengembang
Menghapus aplikasiToken dibatalkanHapus token dari basis data
Memulihkan dari cadanganToken baruPerbarui di basis data
Mereset Google Play ServicesToken diregenerasiProses onNewToken
Token kedaluwarsaPembaruan otomatisBerlangganan pembaruan

Pertanyaan yang Sering Diajukan

Apa yang harus dilakukan jika Registration Token tidak diperoleh?

Periksa keberadaan Google Play Services di perangkat, kebenaran file google-services.json, dan versi Firebase SDK. Pastikan aplikasi memiliki izin akses internet.

Seberapa sering Registration Token berubah?

Token dapat berubah saat menghapus dan menginstal ulang aplikasi, membersihkan data, memulihkan dari cadangan, atau masuk ke akun Google lain. Tidak ada interval waktu yang ketat.

Bisakah satu perangkat memiliki beberapa Registration Token?

Ya, setiap aplikasi di perangkat menerima token FCM sendiri. Jika ada tiga aplikasi dengan Firebase di perangkat, masing-masing akan memiliki Registration Token unik sendiri.

Bagaimana cara memeriksa apakah Registration Token masih valid?

Kirim notifikasi uji melalui konsol Firebase atau FCM HTTP API. Jika token tidak valid, API akan mengembalikan kesalahan UNREGISTERED atau NOT_FOUND.

Apakah aman menyimpan Registration Token di server?

Registration Token bukan kunci rahasia, tetapi kebocorannya memungkinkan pengiriman notifikasi ke perangkat pengguna. Simpan token di basis data yang dilindungi dan gunakan HTTPS untuk transmisi.

Kesimpulan

  • Registration Token — elemen wajib untuk mengirimkan notifikasi push melalui Firebase Cloud Messaging.
  • Token dihasilkan secara otomatis saat pertama kali aplikasi dijalankan dengan FCM SDK.
  • Di Android, token diperoleh melalui FirebaseMessaging.getInstance().getToken().
  • Di iOS, token didasarkan pada APNs device token dan diteruskan melalui delegasi MessagingDelegate.
  • Token dapat berubah — aplikasi harus memproses callback onNewToken.
  • Bagian server harus menyimpan token terbaru dan menghapus yang usang saat kesalahan UNREGISTERED.
  • Untuk pengiriman yang andal, terapkan pemantauan perubahan token dan mekanisme percobaan ulang saat kegagalan.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga