我正在我的聊天应用程序中集成推送通知。因此,在我的注册片段中,我为FCM代币写下了以下代码:
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w("TAG", "Fetching FCM registration token failed", task.exception)
return@OnCompleteListener
}
// Get new FCM registration token
userToken = task.result.toString()
Log.d("task", userToken)
})
之后,我将这个令牌上传到firebase数据库,但我收到一个错误,上面写着
lateinit property userToken has not been initialized
我不知道为什么我会出现这个错误,当我在访问它之前初始化它的时候。如果有人知道我错在哪里,请帮帮我。
尝试这个
val user = FirebaseAuth.getInstance().currentUser
var token: String? = null
val lock = CountDownLatch(1)
user?.getIdToken(true)?.addOnCompleteListener { task ->
if (task.isSuccessful) {
userToken = task.result?.token
if (token == null) {
lock.countDown() //<--unlock
return@addOnCompleteListener
}
//save token
} else {
lock.countDown() //<--unlock
return@addOnCompleteListener
}
}
lock.await()