android - 如何在 Kotlin 中获取 Android 设备 token 以用于 Firebase 云消息传递

标签 android firebase kotlin firebase-cloud-messaging

我正在尝试保存 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/

相关文章:

android - 不幸的是,应用程序已在 Android 中停止

javascript - "Objects are not valid as a React Child"进口

java - Gson 和通过继承序列化对象的 ArrayList

firebase - 如何在 Firestore onCreate 触发器中中止文档创建

android - 无法解析 com.google.android.gms :play-services-ads:9. 0.2

java - 在Kotlin中从Observable转换为Mono

spring-boot - Unresolved reference : SpringExtension using @ExtendWith annotation

android - 在 android 4 上询问 android 权限吗?

java - 用 json 数据填充列表并从中获取值

安卓最佳实践 : 2 activities or 1 activity with multiple layouts?