Registration Token sa mga push notification: ano ito, mga paraan ng pagkuha at pag-update

May-akda: IT Sectr Nai-publish: 2026-03-21 Oras ng pagbabasa: 8 min

Ang Registration Token ay isang natatanging tagapagkilala ng device na ginagamit ng Firebase Cloud Messaging (FCM) para maghatid ng mga push notification. Bawat app sa bawat device ay tumatanggap ng sarili nitong token, kung wala nito ay imposible ang pagpapadala ng mga notification. Ayon sa Firebase, 2025, ang Registration Token ay awtomatikong nabuo sa unang pag-andar ng app at maaaring magbago sa ilalim ng ilang mga kundisyon.

Mga Pangunahing Punto

  • Registration Token — isang string na tumutukoy sa instance ng app sa isang partikular na device para sa FCM.
  • Awtomatikong nabuo ang token sa unang pag-andar o pagkatapos burahin ang data ng app.
  • Ginagamit ng FCM ang token para i-ruta ang mga push notification sa tamang device.
  • Maaaring magbago ang token — dapat mag-subscribe ang app sa mga update sa pamamagitan ng onNewToken.
  • Para magpadala ng mga notification, ang bahagi ng server ay dapat mag-imbak ng mga kasalukuyang token ng lahat ng device.

Ano ang Registration Token

Registration Token — isang natatanging string na hanggang 4096 character na itinatalaga ng Firebase Cloud Messaging sa bawat instance ng app. Ang token ay nabuo batay sa tagapagkilala ng app, device, at Google account sa device.

Istraktura at layunin ng token

Ang Registration Token ay binubuo ng random na pagkakasunod-sunod ng mga character na naka-encode sa Base64 format. Ginagamit ng FCM ang token na ito bilang address ng paghahatid — ang bahagi ng server ay nagpapadala ng notification sa token, at ini-ruta ito ng FCM sa partikular na device. Kung wala ang token, imposibleng i-address ang isang push notification sa isang partikular na user.

Mga pagkakaiba sa iba pang mga tagapagkilala

Ang Registration Token ay hindi dapat ipagkamali sa Device ID (IMEI) o Advertising ID. Ang Device ID ay isang hardware na tagapagkilala ng device, at ang Advertising ID ay ginagamit para sa mga layunin ng advertising. Ang Registration Token ay nakatali sa kombinasyon ng app at device, kung saan ang isang device ay maaaring magkaroon ng maraming token para sa iba't ibang app.

TagapagkilalaLayuninPagbabago
Registration TokenPaghahatid ng mga push notification FCMMaaaring magbago
Device ID (IMEI)Pagkilala ng devicePermanente
Advertising IDNaka-target na advertisingMaaaring i-reset
Instance IDLumang mekanismo ng FirebaseNagbabago sa pagtanggal

Kailan itinuturing na hindi wasto ang token

Maaaring ituring ng FCM na hindi wasto ang Registration Token sa ilang sitwasyon. Kung ang app ay tinanggal mula sa device, ang token ay awtomatikong binabawi. Sa pagpapanumbalik ng data mula sa backup sa isang bagong device, ang lumang token ay hihinto sa paggana. Ibinabalik ng Firebase ang status na UNREGISTERED kapag sinubukang magpadala ng notification sa isang lumang token.

Paano itinatalaga ng FCM ang Registration Token

Firebase Cloud Messaging ay bumubuo ng Registration Token sa unang pag-andar ng app, kapag ang method na getToken() ay tinawag. Kasama sa proseso ang pag-verify ng mga kredensyal ng Google Play Services at pagrehistro ng app sa imprastraktura ng Firebase.

Proseso ng pagrehistro ng device

Kapag unang pinatakbo ng device ang app na may integrated FCM SDK, nangyayari ang sumusunod. Sinusuri ng Firebase SDK ang pagkakaroon ng Google Play Services sa device. Pagkatapos ay nagpapadala ang SDK ng kahilingan sa mga server ng Firebase, na nagpapasa ng tagapagkilala ng app at impormasyon ng device. Gumagawa ang server ng Firebase ng bagong token at ibinabalik ito sa app.

Internal na mekanika ng FCM

Gumagamit ang FCM ng arkitekturang batay sa pangmatagalang koneksyon. Pagkatapos matanggap ang Registration Token, ang device ay nagtatag ng permanenteng koneksyon sa mga server ng Firebase sa pamamagitan ng STOMP protocol sa Android o APNs channel sa iOS. Kapag ang bahagi ng server ay nagpadala ng notification sa token, hinahanap ng FCM ang device sa pamamagitan ng token at inihahatid ang payload.

Mga kondisyon ng regenerasyon ng token

Ang Registration Token ay maaaring muling buuin ng FCM sa mga sumusunod na kaso. Sa pagpapanumbalik ng app mula sa backup sa isang bagong device. Sa pagtanggal at muling pag-install ng app. Sa pag-clear ng data ng app sa pamamagitan ng mga setting ng system. Sa pag-log in sa ibang Google account sa device. Inirerekomenda ng Firebase na laging iproseso ang callback na onNewToken para subaybayan ang mga pagbabago.

Pagkuha ng Registration Token sa Android

Sa Android, ang Registration Token ay nakukuha sa pamamagitan ng Firebase Messaging SDK. Ang proseso ay naiiba para sa iba't ibang bersyon ng SDK — sa mga bagong bersyon, ginagamit ang FirebaseInstallations API sa halip na ang lumang FirebaseInstanceId.

Modernong paraan sa pamamagitan ng FirebaseInstallations

Simula sa Firebase SDK bersyon 21.0.0, ang method na getToken() ay tinatawag sa pamamagitan ng FirebaseMessaging. Ang approach na ito ay awtomatikong namamahala sa lifecycle ng token at nag-subscribe sa mga update nito.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

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

    private fun sendRegistrationToServer(token: String) {
        // Pagpapadala ng token sa bahagi ng server
        Log.d("FCM", "New token: $token")
    }

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

Pagproseso ng token sa Activity o ViewModel

Sa ilang mga sitwasyon, ang token ay kinakailangan hindi sa serbisyo, kundi direkta sa Activity o ViewModel. Para dito, ang getToken() ay maaaring tawagan sa angkop na lugar ng lifecycle ng app. Mahalagang huwag tawagan ang method na ito mula sa pangunahing thread nang hindi pinangangasiwaan ang asynchrony.

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

Lumang method na FirebaseInstanceId

Sa mga lumang bersyon ng Firebase SDK (bago ang bersyon 20.x), ang token ay nakuha sa pamamagitan ng FirebaseInstanceId.getInstance().getToken(). Ang method na ito ay minarkahan bilang deprecated at hindi inirerekomenda para sa mga bagong proyekto. Ang mga developer na nagpapanatili ng legacy code ay dapat lumipat sa FirebaseInstallations API.

Pagkuha ng Registration Token sa iOS

Sa iOS, ang proseso ng pagkuha ng Registration Token ay naiiba sa arkitektura — ang FCM ay gumagana sa pamamagitan ng Apple Push Notification service (APNs). Tumatanggap ang Firebase SDK mula sa APNs ng natatanging device token, kino-convert ito sa format ng FCM, at ipinapasa ito sa app.

Konfigurasyon ng APNs at pagkuha ng token

Para gumana ang FCM sa iOS, dapat i-configure ang APNs certificate o key sa Firebase console. Ang app ay dapat humingi ng pahintulot para sa mga notification sa pamamagitan ng UNUserNotificationCenter. Pagkatapos matanggap ang APNs token, awtomatikong bumubuo ang Firebase SDK ng 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)
    }
}

Mga pagkakaiba sa pagitan ng iOS at Android token

Ang Registration Token sa iOS ay may mas maliit na sukat kumpara sa Android token dahil ito ay batay sa APNs device token. Awtomatikong ina-update ng Firebase SDK ang FCM token kapag nagbago ang APNs token, na nangyayari sa pagpapanumbalik ng device mula sa backup o muling pag-install ng app.

Pag-update at pamamahala ng Registration Token

Pamamahala ng lifecycle ng Registration Token ay isang kritikal na gawain para sa matatag na paghahatid ng mga push notification. Kung ang bahagi ng server ay nag-iimbak ng lumang token, ang mga notification ay hindi maihahatid, at ang Firebase ay magbabalik ng error na UNREGISTERED.

Pagsubaybay sa mga pagbabago ng token

Ang Firebase SDK ay nagbibigay ng dalawang mekanismo para subaybayan ang mga pagbabago ng token. Sa Android, ginagamit ang callback na onNewToken sa FirebaseMessagingService. Sa iOS — ang delegate na messaging:didReceiveRegistrationToken. Pareho ay tinatawag sa bawat pag-update ng token.

kotlin
// Pag-save ng token sa SharedPreferences at pagpapadala sa 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)
    }
}

Estratehiya ng pag-iimbak ng token sa server

Ang bahagi ng server ay dapat mag-imbak ng Registration Token kasama ng tagapagkilala ng user. Sa pag-update ng token, ang client ay nagpapadala ng bagong token sa server, at pinapalitan ng server ang luma. Inirerekomenda na panatilihin ang kasaysayan ng token: kung ang isang notification ay hindi naihatid sa bagong token, maaaring subukan ang luma.

Pangangasiwa ng mga error sa pagtatrabaho sa token

Maaaring magbalik ang Firebase ng error sa pagkuha ng token sa ilang kaso. Kawalan ng Google Play Services sa device — hindi makukuha ang token. Paglampas sa limitasyon ng mga kahilingan sa FCM — magpatupad ng exponential backoff sa mga pagsubok muli. Pag-expire ng token — awtomatikong humihiling ang SDK ng bago.

SitwasyonResultaAksyon ng developer
Pagtanggal ng appToken ay binawiTanggalin ang token mula sa database
Pagpapanumbalik mula sa backupBagong tokenI-update sa database
Pag-reset ng Google Play ServicesToken ay muling nabuoIproseso ang onNewToken
Pag-expire ng tokenAwtomatikong pag-updateMag-subscribe sa mga update

Mga Madalas Itanong

Ano ang gagawin kung hindi nakuha ang Registration Token?

Suriin ang pagkakaroon ng Google Play Services sa device, ang kawastuhan ng google-services.json file, at ang bersyon ng Firebase SDK. Tiyakin na ang app ay may pahintulot sa pag-access sa internet.

Gaano kadalas nagbabago ang Registration Token?

Ang token ay maaaring magbago sa pagtanggal at muling pag-install ng app, pag-clear ng data, pagpapanumbalik mula sa backup, o pag-log in sa ibang Google account. Walang mahigpit na agwat ng oras.

Maaari bang magkaroon ng maraming Registration Token ang isang device?

Oo, bawat app sa device ay tumatanggap ng sarili nitong FCM token. Kung may tatlong app na may Firebase sa device, bawat isa ay magkakaroon ng sarili nitong natatanging Registration Token.

Paano suriin kung valid pa ang Registration Token?

Magpadala ng test notification sa pamamagitan ng Firebase console o FCM HTTP API. Kung hindi valid ang token, ang API ay magbabalik ng error na UNREGISTERED o NOT_FOUND.

Ligtas bang mag-imbak ng Registration Token sa server?

Ang Registration Token ay hindi isang lihim na key, ngunit ang pagtagas nito ay nagpapahintulot sa pagpapadala ng mga notification sa device ng user. Itago ang mga token sa isang protektadong database at gumamit ng HTTPS para sa transmisyon.

Buod

  • Registration Token — sapilitang elemento para sa paghahatid ng mga push notification sa pamamagitan ng Firebase Cloud Messaging.
  • Ang token ay awtomatikong nabuo sa unang pag-andar ng app na may FCM SDK.
  • Sa Android, ang token ay nakuha sa pamamagitan ng FirebaseMessaging.getInstance().getToken().
  • Sa iOS, ang token ay batay sa APNs device token at ipinapasa sa pamamagitan ng delegate na MessagingDelegate.
  • Ang token ay maaaring magbago — dapat iproseso ng app ang callback na onNewToken.
  • Ang bahagi ng server ay dapat mag-imbak ng mga kasalukuyang token at tanggalin ang mga luma sa error na UNREGISTERED.
  • Para sa maaasahang paghahatid, magpatupad ng pagsubaybay sa mga pagbabago ng token at mekanismo ng pagsubok muli sa mga pagkabigo.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din