হ্যাঁ FirebaseInstanceIdService
হ্রাস করা হয়েছে
ডকস থেকে: - এই শ্রেণি অবচয় ছিল। পক্ষে overriding onNewToken
মধ্যে FirebaseMessagingService
। এটি একবার কার্যকর হয়ে গেলে, এই পরিষেবাটি নিরাপদে সরিয়ে ফেলা যায়।
FirebaseInstanceIdService
এফসিএম টোকেন পেতে পরিষেবা ব্যবহার করার দরকার নেই আপনি নিরাপদে FirebaseInstanceIdService
পরিষেবাটি সরিয়ে ফেলতে পারেন
এখন আমরা প্রয়োজন @Override onNewToken
পেতে Token
মধ্যেFirebaseMessagingService
কোডের উদাহরণ
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
Log.e("NEW_TOKEN", s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Map<String, String> params = remoteMessage.getData();
JSONObject object = new JSONObject(params);
Log.e("JSON_OBJECT", object.toString());
String NOTIFICATION_CHANNEL_ID = "Nilesh_channel";
long pattern[] = {0, 1000, 500, 1000};
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Your Notifications",
NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setDescription("");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(pattern);
notificationChannel.enableVibration(true);
mNotificationManager.createNotificationChannel(notificationChannel);
}
// to diaplay notification in DND Mode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = mNotificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID);
channel.canBypassDnd();
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setColor(ContextCompat.getColor(this, R.color.colorAccent))
.setContentTitle(getString(R.string.app_name))
.setContentText(remoteMessage.getNotification().getBody())
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher_background)
.setAutoCancel(true);
mNotificationManager.notify(1000, notificationBuilder.build());
}
}
সম্পাদনা
আপনাকে নিজের FirebaseMessagingService
ম্যানিফেস্ট ফাইলটি এভাবে নিবন্ধিত করতে হবে
<service
android:name=".MyFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
কীভাবে আপনার ক্রিয়াকলাপে টোকেন পাবেন
.getToken();
আপনার ব্যবহারের তুলনায় আপনার ক্রিয়াকলাপে টোকেন নেওয়া দরকার থাকলে তা অবহেলাও করা হয় getInstanceId ()
এখন আমাদের ব্যবহার করা দরকার getInstanceId ()
টোকেন উত্পন্ন করতে হবে
getInstanceId ()
এর ID
জন্য স্বয়ংক্রিয়ভাবে উত্পন্ন টোকেনটি ফেরত দেয়Firebase
প্রকল্প।
এটি এখনও উপস্থিত না থাকলে এটি একটি ইনস্ট্যান্স আইডি উত্পন্ন করে যা ফায়ারবেস ব্যাকএন্ডে সময়ে সময়ে তথ্য প্রেরণ শুরু করে।
রিটার্নস
- ফলাফলটি দেখার জন্য আপনি যে টাস্কটি ব্যবহার করতে পারেন এটি
InstanceIdResult
যা ID
এবং এটি ধারণ করে token
।
কোডের উদাহরণ
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
সম্পাদনা 2
কোটলিনের কাজের কোড এখানে
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(p0: String?) {
}
override fun onMessageReceived(remoteMessage: RemoteMessage?) {
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val NOTIFICATION_CHANNEL_ID = "Nilesh_channel"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val notificationChannel = NotificationChannel(NOTIFICATION_CHANNEL_ID, "Your Notifications", NotificationManager.IMPORTANCE_HIGH)
notificationChannel.description = "Description"
notificationChannel.enableLights(true)
notificationChannel.lightColor = Color.RED
notificationChannel.vibrationPattern = longArrayOf(0, 1000, 500, 1000)
notificationChannel.enableVibration(true)
notificationManager.createNotificationChannel(notificationChannel)
}
// to diaplay notification in DND Mode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel = notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID)
channel.canBypassDnd()
}
val notificationBuilder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
notificationBuilder.setAutoCancel(true)
.setColor(ContextCompat.getColor(this, R.color.colorAccent))
.setContentTitle(getString(R.string.app_name))
.setContentText(remoteMessage!!.getNotification()!!.getBody())
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher_background)
.setAutoCancel(true)
notificationManager.notify(1000, notificationBuilder.build())
}
}