Registration Token ایک منفرد ڈیوائس شناخت کنندہ ہے جسے Firebase Cloud Messaging (FCM) پش نوٹیفیکیشنز کی ترسیل کے لیے استعمال کرتا ہے۔ ہر ڈیوائس پر ہر ایپ اپنا ٹوکن حاصل کرتی ہے، جس کے بغیر نوٹیفیکیشنز بھیجنا ناممکن ہے۔ Firebase، 2025 کے مطابق، Registration Token ایپ کے پہلی بار لانچ ہونے پر خود بخود جنریٹ ہوتا ہے اور مخصوص شرائط میں تبدیل ہو سکتا ہے۔
اہم نکات
Registration Token 4096 حروف تک کی ایک منفرد سٹرنگ ہے جسے Firebase Cloud Messaging ہر ایپ انسٹنس کو تفویض کرتا ہے۔ ٹوکن ایپلیکیشن آئی ڈی، ڈیوائس آئی ڈی اور ڈیوائس پر Google اکاؤنٹ کی بنیاد پر تشکیل پاتا ہے۔
Registration Token Base64 فارمیٹ میں انکوڈ کردہ حروف کے بے ترتیب سلسلے پر مشتمل ہوتا ہے۔ FCM اس ٹوکن کو ترسیل کا پتہ کے طور پر استعمال کرتا ہے — سرور ٹوکن پر نوٹیفیکیشن بھیجتا ہے، اور FCM اسے مخصوص ڈیوائس پر روٹ کرتا ہے۔ ٹوکن کے بغیر کسی مخصوص صارف کو پش نوٹیفیکیشن بھیجنا ناممکن ہے۔
Registration Token کو Device ID (IMEI) یا Advertising ID کے ساتھ الجھانا نہیں چاہیے۔ Device ID ڈیوائس کا ہارڈویئر شناخت کنندہ ہے، جبکہ Advertising ID اشتہاری مقاصد کے لیے استعمال ہوتا ہے۔ Registration Token ایپ اور ڈیوائس کے امتزاج سے منسلک ہوتا ہے، اور ایک ڈیوائس مختلف ایپس کے لیے متعدد ٹوکنز رکھ سکتی ہے۔
| شناخت کنندہ | مقصد | تبدیلی پذیری |
|---|---|---|
| Registration Token | FCM پش نوٹیفیکیشن کی ترسیل | تبدیل ہو سکتا ہے |
| Device ID (IMEI) | ہارڈویئر کی شناخت | مستقل |
| Advertising ID | ٹارگٹڈ اشتہارات | دوبارہ سیٹ کیا جا سکتا ہے |
| Instance ID | پرانا Firebase طریقہ کار | حذف کرنے پر تبدیل ہوتا تھا |
FCM کئی صورتوں میں Registration Token کو نا قابل قبول سمجھ سکتا ہے۔ اگر ایپ ڈیوائس سے ہٹا دی جائے تو ٹوکن خود بخود منسوخ ہو جاتا ہے۔ نئی ڈیوائس پر بیک اپ سے ڈیٹا بحال کرنے پر پرانا ٹوکن کام کرنا چھوڑ دیتا ہے۔ نیز، فرسودہ ٹوکن پر نوٹیفیکیشن بھیجنے کی کوشش کرنے پر Firebase UNREGISTERED سٹیٹس لوٹاتا ہے۔
Firebase Cloud Messaging جب ایپ پہلی بار لانچ ہوتی ہے اور getToken() طریقہ کار کال کیا جاتا ہے تو Registration Token جنریٹ کرتا ہے۔ اس عمل میں Google Play Services کی اسناد کی تصدیق اور Firebase انفراسٹرکچر میں ایپ کی رجسٹریشن شامل ہے۔
جب کوئی ڈیوائس پہلی بار مربوط FCM SDK والی ایپ چلاتی ہے، تو درج ذیل ہوتا ہے۔ Firebase SDK ڈیوائس پر Google Play Services کی موجودگی چیک کرتا ہے۔ پھر SDK ایپلیکیشن آئی ڈی اور ڈیوائس کی معلومات بھیجتے ہوئے Firebase سرورز کو درخواست بھیجتا ہے۔ Firebase سرور نیا ٹوکن بناتا ہے اور ایپ کو واپس کرتا ہے۔
FCM طویل مدتی کنکشنز پر مبنی فن تعمیر استعمال کرتا ہے۔ Registration Token حاصل کرنے کے بعد، ڈیوائس Android پر STOMP پروٹوکول یا iOS پر APNs چینل کے ذریعے Firebase سرورز کے ساتھ مستقل کنکشن قائم کرتی ہے۔ جب سرور ٹوکن پر نوٹیفیکیشن بھیجتا ہے، FCM ٹوکن کے ذریعے ڈیوائس ڈھونڈتا ہے اور پے لوڈ پہنچاتا ہے۔
FCM کے ذریعے درج ذیل صورتوں میں Registration Token دوبارہ بنایا جا سکتا ہے۔ نئی ڈیوائس پر بیک اپ سے ایپ بحال کرتے وقت۔ ایپ کو حذف کر کے دوبارہ انسٹال کرتے وقت۔ سسٹم سیٹنگز کے ذریعے ایپ ڈیٹا صاف کرتے وقت۔ ڈیوائس پر مختلف Google اکاؤنٹ میں سائن ان کرتے وقت۔ Firebase تبدیلیوں کو ٹریک کرنے کے لیے ہمیشہ onNewToken کال بیک کو ہینڈل کرنے کی تجویز کرتا ہے۔
Android پر، Registration Token Firebase Messaging SDK کے ذریعے حاصل کیا جاتا ہے۔ یہ عمل SDK کے مختلف ورژنز کے لیے مختلف ہے — نئے ورژنز فرسودہ FirebaseInstanceId کے بجائے FirebaseInstallations API استعمال کرتے ہیں۔
Firebase SDK ورژن 21.0.0 سے شروع کرتے ہوئے، getToken() طریقہ کار FirebaseMessaging کے ذریعے کال کیا جاتا ہے۔ یہ طریقہ ٹوکن کی زندگی کے سائیکل کو خود بخود منظم کرتا ہے اور اس کی اپ ڈیٹس کو سبسکرائب کرتا ہے۔
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendRegistrationToServer(token)
}
private fun sendRegistrationToServer(token: String) {
// سرور کو ٹوکن بھیجنا
Log.d("FCM", "New token: $token")
}
init {
FirebaseMessaging.getInstance()
.getToken()
.addOnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w("FCM", "FCM ٹوکن حاصل کرنے میں ناکام")
return@addOnCompleteListener
}
val token = task.result
sendRegistrationToServer(token)
}
}
}
کچھ منظرناموں میں، ٹوکن سروس میں نہیں بلکہ براہ راست Activity یا ViewModel میں درکار ہوتا ہے۔ اس کے لیے، ایپ کی زندگی کے سائیکل میں مناسب مقام پر getToken() کال کیا جا سکتا ہے۔ غیر مطابقت پذیری کو ہینڈل کیے بغیر اس طریقہ کار کو مرکزی تھریڈ سے کال نہ کرنا اہم ہے۔
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")
}
}
}
}
Firebase SDK کے پرانے ورژنز (20.x سے پہلے) میں، ٹوکن FirebaseInstanceId.getInstance().getToken() کے ذریعے حاصل کیا جاتا تھا۔ یہ طریقہ فرسودہ قرار دیا گیا ہے اور نئے پروجیکٹس میں استعمال کی سفارش نہیں کی جاتی۔ فرسودہ کوڈ کو برقرار رکھنے والے ڈویلپرز کو FirebaseInstallations API پر منتقل ہونا چاہیے۔
iOS پر، Registration Token حاصل کرنے کا عمل فن تعمیری طور پر مختلف ہے — FCM Apple Push Notification service (APNs) کے ذریعے کام کرتا ہے۔ Firebase SDK APNs سے منفرد ڈیوائس ٹوکن حاصل کرتا ہے، اسے FCM فارمیٹ میں تبدیل کرتا ہے اور ایپ کو دیتا ہے۔
iOS پر FCM استعمال کرنے کے لیے، Firebase کنسول میں APNs سرٹیفکیٹ یا کلید ترتیب دینا ضروری ہے۔ ایپ کو UNUserNotificationCenter کے ذریعے نوٹیفیکیشن کی اجازت مانگنی چاہیے۔ APNs ٹوکن حاصل کرنے کے بعد، Firebase SDK خود بخود 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)
}
}
iOS پر Registration Token Android ٹوکن کے مقابلے میں سائز میں چھوٹا ہوتا ہے، کیونکہ یہ APNs ڈیوائس ٹوکن پر مبنی ہوتا ہے۔ Firebase SDK خود بخود FCM ٹوکن کو اپ ڈیٹ کرتا ہے جب APNs ٹوکن تبدیل ہوتا ہے، جو ڈیوائس کو بیک اپ سے بحال کرنے یا ایپ کو دوبارہ انسٹال کرنے پر ہوتا ہے۔
Registration Token کی زندگی کے سائیکل کا انتظام پش نوٹیفیکیشنز کی قابل اعتماد ترسیل کے لیے ایک اہم کام ہے۔ اگر سرور فرسودہ ٹوکن محفوظ کرتا ہے تو نوٹیفیکیشنز نہیں پہنچیں گی اور Firebase UNREGISTERED خرابی لوٹائے گا۔
Firebase SDK ٹوکن تبدیلیوں کو ٹریک کرنے کے لیے دو طریقہ کار فراہم کرتا ہے۔ Android پر، FirebaseMessagingService میں onNewToken کال بیک استعمال ہوتا ہے۔ iOS پر، messaging:didReceiveRegistrationToken ڈیلیگیٹ استعمال ہوتا ہے۔ ٹوکن اپ ڈیٹ ہونے پر دونوں کو کال کیا جاتا ہے۔
// SharedPreferences میں ٹوکن محفوظ کرنا اور سرور کو بھیجنا
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)
}
}
سرور کو Registration Token کو صارف شناخت کنندہ کے ساتھ منسلک کر کے محفوظ کرنا چاہیے۔ جب ٹوکن اپ ڈیٹ ہوتا ہے، کلائنٹ سرور کو نیا ٹوکن بھیجتا ہے اور سرور پرانے کو تبدیل کرتا ہے۔ ٹوکن ہسٹری رکھنے کی سفارش کی جاتی ہے: اگر نئے ٹوکن پر نوٹیفیکیشن نہ پہنچے تو پرانا آزمایا جا سکتا ہے۔
Firebase کئی صورتوں میں ٹوکن حاصل کرنے میں خرابی لوٹا سکتا ہے۔ ڈیوائس پر Google Play Services کی عدم موجودگی — ٹوکن حاصل نہیں ہوگا۔ FCM کو درخواستوں کی کوٹہ سے تجاوز — دوبارہ کوششوں میں ساتوی تاخیر کو نافذ کرنا ضروری ہے۔ ٹوکن کی میعاد ختم ہونا — SDK خود بخود نیا ٹوکن درخواست کرتا ہے۔
| صورتحال | نتیجہ | ڈویلپر کا عمل |
|---|---|---|
| ایپ کا حذف کرنا | ٹوکن منسوخ | ڈیٹابیس سے ٹوکن حذف کریں |
| بیک اپ سے بحالی | نیا ٹوکن | ڈیٹابیس میں اپ ڈیٹ کریں |
| Google Play Services ری سیٹ | ٹوکن دوبارہ بنا | onNewToken کو ہینڈل کریں |
| ٹوکن کی میعاد ختم ہونا | خود بخود اپ ڈیٹ | اپ ڈیٹس کو سبسکرائب کریں |
اکثر پوچھے گئے سوالات
ڈیوائس پر Google Play Services کی موجودگی چیک کریں، google-services.json فائل کی درستگی اور Firebase SDK ورژن کی تصدیق کریں۔ یقینی بنائیں کہ ایپ کے پاس انٹرنیٹ کی اجازت ہے۔
ٹوکن ایپ کو ان انسٹال اور دوبارہ انسٹال کرنے، ڈیٹا صاف کرنے، بیک اپ سے بحال کرنے یا مختلف Google اکاؤنٹ میں سائن ان کرنے پر تبدیل ہو سکتا ہے۔ کوئی مقررہ وقت کا وقفہ نہیں ہے۔
ہاں، ڈیوائس کی ہر ایپ اپنا FCM ٹوکن حاصل کرتی ہے۔ اگر کسی ڈیوائس میں Firebase والی تین ایپس ہیں، تو ہر ایک کا اپنا منفرد Registration Token ہوگا۔
Firebase کنسول یا FCM HTTP API کے ذریعے ٹیسٹ نوٹیفیکیشن بھیجیں۔ اگر ٹوکن درست نہیں ہے تو API UNREGISTERED یا NOT_FOUND خرابی لوٹائے گا۔
Registration Token کوئی خفیہ کلید نہیں ہے، لیکن اس کا رساؤ صارف کے ڈیوائس پر نوٹیفیکیشن بھیجنے کی اجازت دیتا ہے۔ ٹوکنز کو محفوظ ڈیٹابیس میں محفوظ کریں اور ترسیل کے لیے HTTPS استعمال کریں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں