我正在尝试保存 Android 设备的设备 token 并将其与 Firebase Cloud Messaging 一起使用,但我遇到了问题,我认为我得到的 token 不正确。
当我尝试从 Android 设备请求设备 token 时,我使用以下函数:
FirebaseInstallations.getInstance().id.addOnCompleteListener { task: Task<String?> ->
if (task.isSuccessful) {
val token = task.result
if (token != null && userID != null) {
Log.d("token ---->>", token)
}
}
但是,当我拿到 token 时,它非常短,几乎就像被切断了一样。这是一个示例:fEOC4mBXRguYo4ur1v-fs_
我将其与 iOS 设备上获得的设备 ID 进行了比较。我也尝试过使用 token 来接收通知,但它不起作用。
在 iOS 上,设备 ID 是由设备生成的,而不是 Firebase,这就是上面函数的作用。
我做错了什么?
最佳答案
FirebaseInstallations
不是 FCM 的正确 token !我必须使用 FirebaseMessaging
并使用以下内容:
FirebaseMessaging.getInstance().token
.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w(TAG, "Fetching FCM registration token failed", task.exception)
return@OnCompleteListener
}
val token = task.result
Log.d(TAG, token)
})
关于android - 如何在 Kotlin 中获取 Android 设备 token 以用于 Firebase 云消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73182020/