Android Kotlin - FirebaseMessagingService 获取令牌?

Android Kotlin - FirebaseMessagingService get token?

这是代码:

class LatestFirebaseMessagingService : FirebaseMessagingService() {
    override fun onNewToken(token: String) {
        super.onNewToken(token)

        Log.d("pikabo", token)
    }

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)
    }
}

清单:

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

我连一次令牌都没拿到?!

我想我初始化它是正确的,因为

val reliableIdentifier: String = FirebaseInstanceId.getInstance().id

在activity 正在工作

我错过了什么??

获取 firebase 令牌的正确方法是使用如下所示的 addOnCompleteListener

 FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { task ->
        if (task.isSuccessful)
            print(task.result?.token)
        else
            print(task.exception?.message)
 }

Take a look at the official documentation