我正在尝试获取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服务运行与适当的互联网连接
我尝试过的几种解决方案:
1.在清单中添加internet权限:
1.输入sha1和sha256后从firebase下载google.json文件
1.在google cloud中启用android设备验证。
有时我没有得到错误和fcm令牌返回成功返回,但大多数时候我得到这个错误。
错误是什么?
2条答案
按热度按时间myzjeezk1#
即使我面临着同样的问题,这个问题是当你的设备是不能够与FCM通信由于某种原因.您可以执行以下检查以使其正常工作:
1.检查您的互联网连接与设备
1.在移动的数据和wifi之间切换,反之亦然
1.设备日期和时间应正确。
1.尝试清理缓存。
1.终止应用程序并重新启动它。
vzgqcmou2#
点击here!这也适用于[参考链接][博客]。
[blog]:https://stackoverflow.blog/“Click here for