android - अब क्या उपयोग करें कि FirebaseInstanceId.getInstance()। GetToken() को हटा दिया गया है[डुप्लिकेट]।




push-notification firebase-cloud-messaging (2)

इस सवाल का पहले से ही यहाँ एक जवाब है:

मैं यह जानना चाहूंगा कि पुश नोट भेजने के लिए फायरबेस टोकन प्राप्त करने का सही तरीका क्या होगा कि गेटटोकन () को हटा दिया जाए।


FirebaseInstanceIdService को हटा दिया गया था!

onNewToken() सिर्फ onNewToken() ओवरराइड करें

public class LatestFirebaseMessagingService extends FirebaseMessagingService {

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

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

AndroidManifest.xml

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

getToken() यह भी पदावनत है!

यदि आपको अपनी गतिविधि में टोकन प्राप्त करने की आवश्यकता है तो नीचे दिए गए कोड का उपयोग करें।

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

जैसा कि documentation कहता है:

इस विधि को हटा दिया गया था । GetInstanceId () के पक्ष में।

getInstanceId() एक टास्क के साथ और InstanceIdResult लौटाएगा। ऐशे ही:

 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( new OnSuccessListener<InstanceIdResult>() {                    
                @Override
                public void onSuccess(InstanceIdResult instanceIdResult) {
                      String deviceToken = instanceIdResult.getToken();
                      // Do whatever you want with your token now
                      // i.e. store it on SharedPreferences or DB
                      // or directly send it to server 
                }
});

अद्यतन : हालांकि यह सच है कि यह दृष्टिकोण वस्तुतः फायरबेस के उपयोग की जगह लेगा इसका उपयोग किसी भी गतिविधि के संदर्भ में किया जा सकता है कि यह हमेशा टोकन लौटाएगा। लेकिन क्या होगा अगर हम केवल सृजन पर टोकन प्राप्त करना चाहते हैं और जब यह शायद ही कभी अपडेट किया जाता है? उसके लिए आपको हमारे पुराने FirebaseMessagingService कार्यान्वयन से नई विधि onNewToken को ओवरराइड करना चाहिए: (हाँ, "मैसेजिंग", न कि "InstanceId")

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    String deviceToken = s;
    // Do whatever you want with your token now
    // i.e. store it on SharedPreferences or DB
    // or directly send it to server 
}

इस तरह से कोड दुबला रहेगा और अभ्यस्त भी पहले दृष्टिकोण का उपयोग करने के लिए आवश्यक होगा।





firebase-cloud-messaging