小编Adi*_*xit的帖子

如何修复获取令牌时 Firebase 云消息传递中的 SERVICE_NOT_AVAILABLE 错误

我正在尝试获取 fcm 令牌并将其存储在 cloud firestore 中:

val user = User(et_email_sign_up_activity.text.toString(), et_name_sign_up_activity.text.toString(),
                            et_mobile_sign_up_activity.text.toString(), "",
                        FirebaseAuth.getInstance().currentUser?.uid!!, tv_address.text!!.toString(), getToken())
                    Firebase().uploadUserSignIn(user, this)//uploads user to cloud firestore
Run Code Online (Sandbox Code Playgroud)

获取令牌():

private fun getToken(): String{
        var token = ""
        FirebaseMessaging.getInstance().token.addOnSuccessListener {
            token = it
            Log.i("token", it)
        }.addOnFailureListener {
            val dialog = AlertDialog.Builder(this)
            dialog.setMessage(it.toString())
            dialog.show()
        }
        return token
    }
Run Code Online (Sandbox Code Playgroud)

每当我尝试在真实的 Android 设备中执行代码时,我总是会收到此错误:

E/FirebaseMessaging: Topic sync or token retrieval failed on hard
failure exceptions: java.util.concurrent.ExecutionException:
java.io.IOException: SERVICE_NOT_AVAILABLE. Won't retry the operation.
Run Code Online (Sandbox Code Playgroud)

我的 google play 服务在正确的互联网连接下运行

我尝试过的几个解决方案:

  1. 在清单中添加互联网权限:
  2. 输入 sha1 和 …

android firebase firebase-cloud-messaging

7
推荐指数
1
解决办法
1万
查看次数