希望你们所有人都知道这个类,用来获取通知令牌,每当firebase通知令牌被刷新时,我们从这个类获得刷新令牌,从下面的方法。

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

使用这个,因为我想实现FCM,我扩展MyClass从FirebaseInstanceIdService

但是,显示FirebaseInstanceIdService已弃用

有人知道吗?, 我应该使用什么方法或类,而不是这个来获得刷新令牌,因为这是不赞成的。

我正在使用:实现'com.google.firebase:firebase-messaging:17.1.0'

我检查了文件,没有提到这一点。: FCM设置文件


更新

此问题已修复。

由于谷歌已弃用FirebaseInstanceService,

我问了这个问题来找到方法,我知道我们可以从FirebaseMessagingService获得令牌,

像以前一样,当我问问题时,文档没有更新,但现在谷歌文档更新了,因此要了解更多信息,请参考谷歌文档:FirebaseMessagingService

From: FirebaseInstanceService(已弃用)

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

NEW From: FirebaseMessagingService

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

当前回答

getInstance(). getinstanceid()现在也已弃用,现在正在使用FirebaseMessaging。

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val token = task.result
    } else {
        Timber.e(task.exception)
    }
}

其他回答

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);
    }
}

下面是c# /Xamarin的解决方案。Android:

var token = await FirebaseInstallations.Instance.GetToken(forceRefresh: false).AsAsync<InstallationTokenResult>();

你可以使用服务

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

public class MyFirebaseMessagingService extends FirebaseMessagingService{
           @Override
    public void onNewToken(String s) {
        super.onNewToken(s);
        Log.e("NEW_TOKEN = = == = = =",s);
    }

}

如果你想在活动中使用

FirebaseMessaging.getInstance ().getToken ().addOnCompleteListener ( task -> {
                Log.e("spalsh",task.getResult());
                    });

首先导入com.google.firebase.messaging.FirebaseMessaging; 然后 只需使用firebasemessage . getinstance ().getToken().getResult();而不是FirebaseInstanceId.getInstance().getToken().getresult()

就是这样。

Kotlin允许比其他答案中显示的代码更简单的代码。

每次刷新时获取新令牌:

class MyFirebaseMessagingService: FirebaseMessagingService() {

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

要在运行时从任何地方获取令牌:

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