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 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.
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.
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.
| Tagapagkilala | Layunin | Pagbabago |
|---|---|---|
| Registration Token | Paghahatid ng mga push notification FCM | Maaaring magbago |
| Device ID (IMEI) | Pagkilala ng device | Permanente |
| Advertising ID | Naka-target na advertising | Maaaring i-reset |
| Instance ID | Lumang mekanismo ng Firebase | Nagbabago sa pagtanggal |
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.
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.
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.
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.
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.
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.
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.
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)
}
}
}
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.
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")
}
}
}
}
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.
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.
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.
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)
}
}
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.
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.
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.
// 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)
}
}
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.
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.
| Sitwasyon | Resulta | Aksyon ng developer |
|---|---|---|
| Pagtanggal ng app | Token ay binawi | Tanggalin ang token mula sa database |
| Pagpapanumbalik mula sa backup | Bagong token | I-update sa database |
| Pag-reset ng Google Play Services | Token ay muling nabuo | Iproseso ang onNewToken |
| Pag-expire ng token | Awtomatikong pag-update | Mag-subscribe sa mga update |
Mga Madalas Itanong
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.
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.
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.
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.
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
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.
Basahin din