【发布时间】:2021-06-23 16:41:46
【问题描述】:
我正在尝试获取 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
getToken():
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
}
每当我尝试在真正的 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.
我有 google play 服务在正确的互联网连接下运行
我尝试过的几个解决方案:
- 在清单中添加 Internet 权限:
- 输入 sha1 和 sha256 后从 firebase 下载 google.json 文件
- 在谷歌云中启用安卓设备验证。
有时我没有收到错误并成功返回 fcm 令牌,但大多数时候我收到此错误。
什么是错误?
【问题讨论】:
标签: android firebase firebase-cloud-messaging