টোকেন কিভাবে পাবেন ফায়ারবেস (এফসিএম)


97

এটি আমার প্রথমবারের মতো এফসিএম ব্যবহার করছে।

আমি ফায়ারবেস / কুইকস্টার্ট -অ্যান্ড্রয়েড থেকে একটি নমুনা ডাউনলোড করি এবং আমি এফসিএম কুইকস্টার্ট ইনস্টল করি। তবে আমি লগ থেকে কোনও টোকেন পেতে পারি না এমনকি অ্যাপ্লিকেশনটিতে লগ টোকেন বোতামটিও চাপায়

তারপরে আমি ফায়ারবেস কনসোল সহ একটি বার্তা প্রেরণ করার চেষ্টা করব এবং আমার অ্যাপ্লিকেশন প্যাকেজের নামটি লক্ষ্যবস্তু করে দিতে চাই। আমি আগত বার্তা পেয়েছি।

আমি জানতে চাই যে এফসিএম ব্যবহার করা যায়? জিসিএম সবকিছু ঠিক আছে।

সমাধান:

কারণ আমি কোনও অ্যান্ড্রয়েড বিকাশকারী নই, কেবল একটি ব্যাকএন্ড বিকাশকারী। সুতরাং এটি সমাধান করতে আমার কিছুটা সময় লাগে। আমার মতে, নমুনা অ্যাপ্লিকেশনে কিছু বাগ রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

কোড :

নিবন্ধভুক্তকরণ পরিষেবা.জভা

public class RegistrationIntentService extends IntentService {

    private static final String TAG = "RegIntentService";


    public RegistrationIntentService() {
        super(TAG);
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        String token = FirebaseInstanceId.getInstance().getToken();
        Log.i(TAG, "FCM Registration Token: " + token);
    }
}

মাইফায়ারবেসআইনস্ট্যান্সআইডি সার্ভিস.জভা

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {

    private static final String TAG = "MyFirebaseIIDService";

    /**
     * Called if InstanceID token is updated. This may occur if the security of
     * the previous token had been compromised. Note that this is called when the InstanceID token
     * is initially generated so this is where you would retrieve the token.
     */
    // [START refresh_token]
    @Override
    public void onTokenRefresh() {
        // Get updated InstanceID token.
//        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
//        Log.d(TAG, "Refreshed token: " + refreshedToken);
//
//        // TODO: Implement this method to send any registration to your app's servers.
//        sendRegistrationToServer(refreshedToken);
//
        Intent intent = new Intent(this, RegistrationIntentService.class);
        startService(intent);
    }
    // [END refresh_token]

    /**
     * Persist token to third-party servers.
     * <p>
     * Modify this method to associate the user's FCM InstanceID token with any server-side account
     * maintained by your application.
     *
     * @param token The new token.
     */
    private void sendRegistrationToServer(String token) {
        // Add custom implementation, as needed.
    }
}

এটি মেইনএকটিভিটি.জভাতে যুক্ত করুন।

 Intent intent = new Intent(this, RegistrationIntentService.class);
        startService(intent);

উপরের কাজটি করার পরে - আপনি লককটে টোকন পাবেন। তবে পরিশেষে, আমি এটি পাওয়ার জন্য একটি সুবিধাজনক উপায় পেয়েছি । নমুনা অ্যাপ্লিকেশন ইনস্টল করতে কেবল ডিবাগ মোড ব্যবহার করুন এবং প্রথমবার ইনস্টল করার সময় আপনি টোকন পেতে পারেন।

তবে আমি জানি না কেন আমি এটি ইনস্টল করার পরে লগটি মুদ্রণ করতে পারি না। হতে পারে মোবাইল সিস্টেমের সাথে সম্পর্কিত।

এবং তারপরে আমি কেন বিজ্ঞপ্তি পাচ্ছি না। ফায়ারব্যাসমেসেজিং সার্ভিস.অনম্যাসেজগ্রীকৃত সেন্ডনোটিকেশন কল করেনি


লগটি আঘাত করা হলে, এটি নমুনা অ্যাপ্লিকেশনে এটির সাথে টোকেন দেখাবে
শুভঙ্ক

না, নমুনা অ্যাপ্লিকেশনটি বলেছে .আমি যদি বোতামটি চাপি তবে এটি লগকটে টোকনটি প্রদর্শন করবে। তবে লগক্যাটে আমি কিছুই খুঁজে পাই না @ @
শুভঙ্ক

এই লাইনগুলিকে uncomment String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken);
গৌরব

উত্তর:


129

প্রোটোটাইপ জন্য দ্রুত এবং ভাল

দ্রুত সমাধানটি হ'ল এটি শেয়ারডপ্রিফগুলিতে সঞ্চয় করা এবং এই যুক্তিকে onCreateআপনার মেইনএক্টিভিটি বা ক্লাসে প্রয়োগ করতে হবে যা অ্যাপ্লিকেশনটি প্রসারিত করছে।

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(this, instanceIdResult -> {
    String newToken = instanceIdResult.getToken();
    Log.e("newToken", newToken);
    getActivity().getPreferences(Context.MODE_PRIVATE).edit().putString("fb", newToken).apply();
});

Log.d("newToken", getActivity().getPreferences(Context.MODE_PRIVATE).getString("fb", "empty :("));

পরিষ্কার করার উপায়

একটি আরও ভাল বিকল্প হ'ল একটি পরিষেবা তৈরি করা এবং অনুরূপ যুক্তির ভিতরে রাখা। প্রথমে নতুন পরিষেবা তৈরি করুন

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onNewToken(String s) {
        super.onNewToken(s);
        Log.e("newToken", s);
        getSharedPreferences("_", MODE_PRIVATE).edit().putString("fb", s).apply();
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
    }

    public static String getToken(Context context) {
        return context.getSharedPreferences("_", MODE_PRIVATE).getString("fb", "empty");
    }
}

এবং তারপরে এটিকে অ্যান্ড্রয়েডমেনিস্ট ফাইলটিতে যুক্ত করুন

<service
        android:name=".MyFirebaseMessagingService"
        android:stopWithTask="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
</service>

অবশেষে, আপনি আপনার পরিষেবা থেকে একটি স্ট্যাটিক পদ্ধতি ব্যবহার করতে সক্ষম হন MyFirebaseMessagingService.getToken(Context);

দ্রুততম কিন্তু প্রত্যাশিত

Log.d("Firebase", "token "+ FirebaseInstanceId.getInstance().getToken());

আপনি যখন 17.xx সংস্করণের চেয়ে পুরানো ফায়ারবেস লাইব্রেরি ব্যবহার করছেন তখন এটি এখনও কাজ করছে


6
তবে দ্বিতীয় দৃষ্টিভঙ্গি কেবল ভাগ করা পছন্দগুলি সাফ না হওয়া পর্যন্ত কাজ করে। যদি অ্যাপের ডেটা সাফ হয়ে যায় এবং সেই স্ট্রিংয়ের মানটি হারিয়ে যায় তবে কী হবে? কোনও নতুন টোকেন না থাকায় অ্যান্ড্রয়েড "অনটনে টোকেন ()" কল করে না । তবে কীভাবে আমরা টোকেনটির অনুরোধ করব? সর্বত্র এটি "কেবলমাত্র নিউ টোকেন () ব্যবহার করুন" বলছে তবে নতুন টোকেন থাকলে কেবল সেই পদ্ধতিটি চলে । আসুন আমরা বলি যে পদ্ধতিটি ইতিমধ্যে চলেছে, তবে আমরা টোকেনটি সংরক্ষণ করার জন্য মাথা ঘামাইনি। পরে আমরা একটি চেক সঞ্চালন করে দেখি যে টোকেনটি সেট করা নেই, তবে কী? আমাকে আবার টোকেন বলতে কীভাবে আমি FCM কে ট্রিগার করব?
জেনারালজেমস


4
আপনি FirebaseInstanceId.getInstance().getInstanceId()পরিবর্তে ব্যবহার করতে পারেন FirebaseInstanceId.getInstance().getToken(), এই উত্তরটি দেখুন
ভাদিম কোতোভ

@JeneralJames একটি ব্যবহারকারী অ্যাপ্লিকেশন ডেটা মুছে ফেলেন, তাহলে onNewTokenসবসময় নথিপত্র থেকে এখানে আলোড়ন সৃষ্টি করা হবে, firebase.google.com/docs/cloud-messaging/android/...
সারাহ

26

ফায়ারবেস অ্যান্ড্রয়েড এসডিকে পিছনে দলটি API কে কিছুটা পরিবর্তন করে। আমি "টোকেন টু সার্ভার" যুক্তিটি এভাবে প্রয়োগ করেছি:

আমার ফায়ারবেসমেজিংসেবা পরিষেবাতে:

public class FirebaseCloudMessagingService extends FirebaseMessagingService {

    ...

    @Override
    public void onNewToken(String token) {
        // sending token to server here
    }

    ...

}

মনে রাখবেন যে টোকেন প্রতি ডিভাইস, এবং এটি আপনার লগইন যুক্তি নির্বিশেষে ফায়ারবেস দ্বারা আপডেট করা যেতে পারে। সুতরাং, আপনার যদি লগইন এবং লগআউট কার্যকারিতা থাকে, আপনাকে অতিরিক্ত কেসগুলি বিবেচনা করতে হবে:

  1. যখন কোনও নতুন ব্যবহারকারী লগ ইন করে, আপনাকে নতুন ব্যবহারকারীর সাথে টোকেনটি আবদ্ধ করতে হবে (এটি সার্ভারে প্রেরণ করুন)। কারণ টোকন পুরানো ব্যবহারকারীর সেশনের সময় আপডেট হতে পারে এবং সার্ভারটি নতুন ব্যবহারকারীর টোকেন জানেন না।
  2. যখন ব্যবহারকারী লগ আউট করে, আপনার টোকেন আনবাইন্ড করা দরকার। কারণ ব্যবহারকারীর আর বিজ্ঞপ্তি / বার্তা গ্রহণ করা উচিত নয়।

নতুন এপিআই ব্যবহার করে, আপনি এই জাতীয় টোকেন পেতে পারেন:

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
        @Override
        public void onSuccess(InstanceIdResult instanceIdResult) {
            String token = instanceIdResult.getToken();
            // send it to server
        }
    });

শুভকামনা!


অনসুক্সেসের বাইরে মান পাওয়ার চেষ্টা করা শূন্য হয়ে যাচ্ছে।
ড্রাগনফায়ার

লগইন / লগআউট কার্যকারিতার পুশ বার্তাগুলির সাথে কোনও সম্পর্ক নেই, এটি একটি নির্দিষ্ট ব্যবসায়ের ব্যবহার-ক্ষেত্রে। উদাহরণস্বরূপ, আপনি কিছু বিপণন / প্রচার বিজ্ঞপ্তি যুক্ত লগ আউট ব্যবহারকারীদের অ্যাপ্লিকেশনটিতে আবার লগইন করতে তাদের লক্ষ্যবস্তু করতে চাইতে পারেন, সেক্ষেত্রে আপনার এফসিএম টোকেন প্রয়োজন। তবে টোকেন পাওয়ার ক্ষেত্রে উত্তরটি সঠিক।
milosmns

@ মিলস্মনস, আপনি বিপণন / প্রচার বিজ্ঞপ্তির ক্ষেত্রে সঠিক are এখনও টোকেন স্থিতির ইঙ্গিত করার প্রয়োজন আছে। । সহজ সমাধান ইতিহাস টেবিল কিছু ধরনের আনবাউন্ড টোকেন সংরক্ষণ এবং তারপর যারা গত টোকেন ব্যবহার করতে পুনরায় লগ-ইন ব্যবহার উৎসাহিত করার জন্য হবে
rzaaeeff

এইচএম আমি নিশ্চিত না যে আপনি একই টোকেনটি আর কতক্ষণ ব্যবহার করতে পারবেন এবং কখন এটি অবৈধ হয়ে যায়। এটি তদন্তযোগ্য, কারণ আমি অনুমান করি যে একবার টোকেনগুলি অবৈধ হয়ে গেলে আপনার এই ইতিহাস / ক্যাশে / জেদী টেবিলটি সাফ করা দরকার।
milosmns

ফায়ারব্যাসল্যান্ডে @ মিলস্মনস, টোকেনগুলির মেয়াদ শেষ হবে না বরং পুনর্নবীকরণ হবে। আপনি যখন এফসিএম এপিআই দিয়ে কোনও টোকেন সম্পর্কিত ক্রিয়াকলাপ ট্রিগার করেন, তখন প্রদত্ত টোকেনটি বৈধ হয়ে যায়। যদি টোকেনটি অবৈধ হয় তবে আপনি ত্রুটিটি পাবেন: মিসিং রেজিস্ট্রেশন বা ত্রুটি: অবৈধ নিবন্ধন। : আপনি এখানে আরো ত্রুটি কোডের জানতে পারেন firebase.google.com/docs/cloud-messaging/...
rzaaeeff

24

গুরুত্বপূর্ণ তথ্য.

যদি গুগল প্লে পরিষেবা হ্যাং হয় বা না চলছে, তবে এফসিএম রিটার্ন টোকেন = null

যদি খেলার পরিষেবাটি সঠিকভাবে কাজ করে তবে FirebaseInstanceId.getInstance().getToken()পদ্ধতিটি ফিরে আসেtoken

Log.d("FCMToken", "token "+ FirebaseInstanceId.getInstance().getToken());

হ্যাঁ, তবে এটি প্রায়শই ঘটে
হোয়াং ডুক তুয়ান

টোকেন একবার এনে দেওয়ার পরে তা ক্যাশে করা হয় (সম্ভবত খুব সম্ভবত ইন-মেম)। সুতরাং এর অর্থ হ'ল আপনার একবারে এটি আনতে হবে বা ফায়ারবেসকে আপনার জন্য অন্য কোনও টোকেন পুনরায় ইস্যু করতে হবে। এখানে কিভাবে আনতে নিজে দেখুন stackoverflow.com/a/51630819/2102748
milosmns

13

ডক অনুযায়ী

একটি সিসিএম ক্লায়েন্ট অ্যাপ্লিকেশন এফসিএম এ স্থানান্তর করুন

onTokenRefresh()

শুধুমাত্র ইনস্ট্যান্সআইডি টোকেন আপডেট করা হলে কল করা হয়

সুতরাং আপনি যখন আপনার ডিভাইসে কোনও অ্যাপ্লিকেশন ইনস্টল করবেন কেবল তখনই এটি কল করবে।

সুতরাং আমি পরামর্শ দিচ্ছি দয়া করে আপনার অ্যাপ্লিকেশনটি ম্যানুয়ালি আনইনস্টল করুন এবং আবার চালানোর চেষ্টা করুন

অবশ্যই আপনি টোকেন পাবেন


4
পুনরায় ইনস্টল করবেন না, ম্যানুয়ালি এটি আনইনস্টল করুন তারপরে প্রকল্পটি পরিচালনা করুন
গৌরব

এই লাইনগুলিকে uncomment String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken);
গৌরব

4
@ গৌরব, দ্বিতীয় লগইন করার পরে আমি কীভাবে টোকেন পেতে পারি? onTokenRefreshপ্রতিটি লগইন কল না। আমি কীভাবে আমার লগইন স্ক্রিনে টোকেন পেতে পারি?
delavega66

4
@ দে_লা_ভেগা_66, আপনাকে প্রথম লগইনে আপনার টোকেন সংরক্ষণ করতে হবে
গৌরব

আপনার পরিষেবা যা ফায়ারবেসআইনস্ট্যান্সআইডসোসরটি প্রসারিত করে এবং অন টোকেনআরফ্রেশ () কলব্যাক পদ্ধতিতে ম্যানিফেস্ট ফাইলটিতে নিবন্ধিত হওয়া আবশ্যক: <পরিষেবা অ্যান্ড্রয়েড: নাম = "com.mypackage.name.MyInstanceIdService" অ্যান্ড্রয়েড: রফতানি = "সত্য"> <ইনটেন্ট-ফিল্টার <ক্রিয়াকলাপ অ্যান্ড্রয়েড: নাম = "com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service>
কিরিল কারমাজিন

9

এটা চেষ্টা কর. আপনি কেন ব্যবহার করছেন RegistrationIntentService?

public class FirebaseInstanceIDService extends FirebaseInstanceIdService {    
    @Override
    public void onTokenRefresh() {    
        String token = FirebaseInstanceId.getInstance().getToken();    
        registerToken(token);
    }

    private void registerToken(String token) {

    }
}

8

এই লাইনে আপনাকে ফায়ারবেস এফসিএম টোকেন পাওয়া উচিত।

String token = FirebaseInstanceId.getInstance().getToken();
Log.d("MYTAG", "This is your Firebase token" + token);

এটিকে অ্যান্ড্রয়েড মনিটরে মুদ্রণ করতে লগ.ড করুন।


এটি নাল
ফেরায়

7

এর পরিবর্তে:

    // [START refresh_token]
    @Override
    public void onTokenRefresh() {
//        Get updated InstanceID token.
//        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
//        Log.d(TAG, "Refreshed token: " + refreshedToken);
//
//        TODO: Implement this method to send any registration to your app's servers.
//        sendRegistrationToServer(refreshedToken);
//
        Intent intent = new Intent(this, RegistrationIntentService.class);
        startService(intent);
    }
    // [END refresh_token]

এটা কর:

    // [START refresh_token]
    @Override
    public void onTokenRefresh() {
        // Get updated InstanceID token.
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
//        Log.d(TAG, "Refreshed token: " + refreshedToken);

        // Implement this method to send token to your app's server
       sendRegistrationToServer(refreshedToken);

    }
    // [END refresh_token]

এবং আরও একটি জিনিস:

আপনার sendRegistrationToServer()যদি সার্ভার থেকে পুশ বিজ্ঞপ্তি প্রেরণ করা হয় তবে আপনাকে কল পদ্ধতিটি কল করতে হবে যা সার্ভারে টোকেন আপডেট করবে।

হালনাগাদ:

নতুন ফায়ারবেস টোকেন তৈরি করা হয় ( onTokenRefresh()বলা হয়) কখন:

  • অ্যাপ্লিকেশনটি ইনস্ট্যান্স আইডি মুছে দেয়
  • অ্যাপ্লিকেশনটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
  • ব্যবহারকারী অ্যাপটি আনইনস্টল / পুনরায় ইনস্টল করে
  • ব্যবহারকারী অ্যাপ্লিকেশন ডেটা সাফ করে।

আমি ইন্সটান্স আইডি FirebaseInstanceId.getInstance () মুছে ফেলতে ছিল deleteInstanceId () কিন্তু একটি পরিষেবা ত্রুটি পেয়েছিলাম।
Hardik9850

4
আপনার FirebaseInstanceId.getInstance().deleteInstanceId()আর একটি থ্রেডে চালানো দরকার
রকার06

6

একই সাথে টোকেন আইডি পাওয়ার জন্য এটি আপনার ম্যানিফেস্ট ফাইলে অন্তর্ভুক্ত করতে ভুলবেন না

<service
    android:name=".MyFirebaseInstanceIDService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
</service>

5

পদ্ধতিটি getToken()হ্রাস করা হয়। getInstanceId()পরিবর্তে আপনি ব্যবহার করতে পারেন ।

আপনি যদি অনুরোধ করার সময় ফলাফলগুলি পরিচালনা করতে চান তবে instanceId(token)এই কোডটি দেখুন।

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(instanceIdResult -> {
        if (instanceIdResult != null) {
            String token = instanceIdResult.getToken();
            if (!TextUtils.isEmpty(token)) {
                Log.d(TAG, "retrieve token successful : " + token);
            }
        } else{
            Log.w(TAG, "instanceIdResult should not be null..");
        }
    }).addOnFailureListener(e -> {
        //do something with e
    }).addOnCanceledListener(() -> {
        //request has canceled
    }).addOnCompleteListener(task -> Log.v(TAG, "task result : " + task.getResult().getToken()));

4

ইন firebase-messaging:17.1.0এবং নতুন FirebaseInstanceIdService নিন্দা করা হয়েছে, আপনি পেতে পারেন onNewTokenউপর FirebaseMessagingServiceহিসাবে ব্যাখ্যা বর্গ https://stackoverflow.com/a/51475096/1351469

তবে আপনি যদি যে কোনও সময় কেবলমাত্র টোকেন পেতে চান তবে এখন আপনি এটি এর মতো করতে পারেন:

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( this.getActivity(),  new OnSuccessListener<InstanceIdResult>() {
  @Override
  public void onSuccess(InstanceIdResult instanceIdResult) {
    String newToken = instanceIdResult.getToken();
    Log.e("newToken",newToken);
  }
});

এটি কি ফেরত দেওয়া যায়, তাই একই ফাংশনটি অনেক জায়গায় ব্যবহার করা যেতে পারে বা ফায়ারব্যাসের অ্যাসিনক্রোনাস প্রকৃতির কারণে আমাদের অনুলিপি এবং পেস্ট করতে হবে
ড্রাগনফায়ার

3

যদি ফায়ারবেসের কিছু লেখক ফাংশন ব্যবহার করে থাকেন তবে আপনি এটি ব্যবহার করে টোকেন নিতে পারেন:

//------GET USER TOKEN-------
FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
mUser.getToken(true)
        .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
            public void onComplete(@NonNull Task<GetTokenResult> task) {
                if (task.isSuccessful()) {
                    String idToken = task.getResult().getToken();
                      // ...
                }
            }
        });

ব্যবহারকারী লগ থাকলে ভাল কাজ করুন। getCurrentUser ()



1

যারা এখানে অবতরণ করেছেন তাদের জন্য এখন অবধি FirebaseInstanceIdServiceঅবহেলিত, পরিবর্তে ব্যবহার করুন:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onNewToken(String token) {
        Log.d("MY_TOKEN", "Refreshed token: " + token);

        // If you want to send messages to this application instance or
        // manage this apps subscriptions on the server side, send the
        // Instance ID token to your app server.
        // sendRegistrationToServer(token);
    }
}

এবং অ্যান্ড্রয়েড ম্যানিফেস্টে ঘোষণা করুন

<application... >

<service android:name=".fcm.MyFirebaseMessagingService">
    <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>
</application>

1
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String **token** = task.getResult().getToken();

            }
        });

0

FirebaseInstanceId.getInstance().getInstanceId()হয় অবচিতফায়ারবেস ডকুমেন্টের ভিত্তিতে , আপনি নিম্নলিখিত কোড ব্যবহার করে বর্তমান রেজিস্ট্রেশন টোকেনটি পুনরুদ্ধার করতে পারেন:

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

-1

টোকন পেতে আপনি ফায়ারবেস (এফসিএম) এ নিম্নলিখিত ব্যবহার করতে পারেন:

FirebaseInstanceId.getInstance().getToken();

4
getToken () পদ্ধতি অবমূল্যায়ন করা হয়েছে! সেরা উত্তর, এখন, @rzaaeeff থেকে।
দামিই

-9
Settings.Secure.getString(getContentResolver(),
                     Settings.Secure.ANDROID_ID);

সেই কোডটি ডিভাইসের অ্যান্ড্রয়েড আইডি পাওয়ার জন্য, ফায়ারবেস টোকেন নয়।
সৈয়দ আফিফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.