android - FirebaseInstanceIdService पदावनत है




firebase-cloud-messaging (4)

और इस:

FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()

माना जाता है कि पदावनत के समाधान:

FirebaseInstanceId.getInstance().getToken()

संपादित करें

FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken() कार्य को पूरा नहीं होने पर अपवाद उत्पन्न कर सकता है, इसलिए विधि चुड़ैल नीलेश राठौड़ ने वर्णित किया (with .addOnSuccessListener ) इसे करने का सही तरीका है।

Kotlin:

FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(this) { instanceIdResult ->
        val newToken = instanceIdResult.token
        Log.e("newToken", newToken)
    }

आशा है कि आप सभी इस वर्ग से अवगत होंगे, जब भी फायरबेस नोटिफिकेशन टोकन रीफ़्रेश हो जाता था, तो हम टोकन प्राप्त कर लेते थे, हम इस विधि से, इस विधि से, ताज़ा टोकन प्राप्त कर लेते हैं।

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

इसका उपयोग करने के लिए जैसा कि मैं एफसीएम लागू करना चाहता हूं, मैंने फायरबेस से MyClass को बढ़ाया FirebaseInstanceIdService

लेकिन, यह दिखाते हुए कि FirebaseInstanceIdService पदावनत है

क्या किसी को यह पता है ?, ताज़ा टोकन प्राप्त करने के लिए मुझे इसके बजाय किस विधि या वर्ग का उपयोग करना चाहिए क्योंकि यह पदावनत है।

मैं उपयोग कर रहा हूँ: implementation 'com.google.firebase:firebase-messaging:17.1.0'

मैंने उसी के बारे में कुछ भी नहीं होने के लिए दस्तावेज़ की जाँच की। : FCM SETUP DOCUMENT

अद्यतन करें

मामला सुलझ गया है।

जैसे ही Google ने FirebaseInstanceService हटा दिया,

मैंने रास्ता खोजने के लिए प्रश्न पूछा और मुझे पता चला कि हम FirebaseMessagingService से टोकन प्राप्त कर सकते हैं,

पहले की तरह, जब मैंने पूछा कि प्रश्न दस्तावेज़ अपडेट नहीं किए गए थे, लेकिन अब Google डॉक्स को अधिक जानकारी के लिए अपडेट किया गया है, तो इस Google दस्तावेज़ को देखें: FirebaseMessagingService

पुराने से: FirebaseInstanceService (पदावनत)

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

नई से: FirebaseMessagingService

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    Log.d("NEW_TOKEN",s);
}

धन्यवाद।


कोटलिन अन्य उत्तरों में दिखाए गए से भी सरल कोड की अनुमति देता है।

जब भी यह ताज़ा हो तो नया टोकन प्राप्त करने के लिए:

class MyFirebaseMessagingService: FirebaseMessagingService() {

    override fun onNewToken(token: String?) {
        Log.d("FMS_TOKEN", token)
    }
    ...
}

रनटाइम के दौरान कहीं से भी टोकन प्राप्त करने के लिए:

FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {
    Log.d("FMS_TOKEN", it.token)
}

FirebaseinstanceIdService पदावनत है। तो "FirebaseMessagingService" का उपयोग करना होगा

कृपया छवि को सीज करें:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onNewToken(String s) {
        super.onNewToken(s);
        Log.e("NEW_TOKEN",s);
    }

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

यहाँ फायरबैशर

FirebaseInstanceIdService लिए संदर्भ दस्तावेज़ देखें:

इस वर्ग को पदावनत कर दिया गया।

FirebaseMessagingService में onNewToken को ओवरराइड करने के पक्ष में। एक बार लागू होने के बाद, इस सेवा को सुरक्षित रूप से हटाया जा सकता है।

पर्याप्त रूप से FirebaseMessagingService लिए onNewToken पर्याप्त नहीं है, अभी तक onNewToken विधि का उल्लेख नहीं करता है। ऐसा लगता है कि सभी अद्यतन किए गए दस्तावेज़ अभी तक प्रकाशित नहीं हुए थे। मैंने प्रकाशित डॉक्स के अपडेट प्राप्त करने के लिए, और गाइड में सैंपल भी अपडेट करने के लिए एक आंतरिक मुद्दा दायर किया है।

इस बीच, पुराने / पदावनत दोनों कॉल, और नए लोगों को काम करना चाहिए। यदि आपको इससे कोई परेशानी हो रही है, तो कोड को पोस्ट करें और मुझे एक नज़र रखना होगा।





firebase-cloud-messaging