我已经使用Firestore数据库创建了一个应用程序。当用户登录或在应用程序中注册后,firebase设备令牌将添加为数据库中的字段。在注销时,我也输入了删除instanceid和令牌的代码。注销后,我仍然收到前一个用户的通知。这是我的代码。
在注册页面上:
private fun addNewUser(uid: String, socialUser: FirebaseUser? = null) {
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(activity, OnSuccessListener<InstanceIdResult> { instanceIdResult ->
val mToken = instanceIdResult.token
userModel.deviceToken = mToken
})
val mapData = userModel.getMap()
database.collection(UserModel.COLLECTION_APP_USERS).document(uid).set(mapData, SetOptions.merge())
.addOnSuccessListener { _: Void? ->
UserTokenManager(activity).setUserMe(userModel)
isSignInSuccessful.value = ApiResponse(true)
}
.addOnFailureListener { exception: Exception ->
isSignInSuccessful.value = ApiResponse(exception)
}
}
所以我在这里在Firestore数据库中添加令牌ID。
现在注销时遵循以下代码。
fun endSession() {
try {
val sharedPreferenceHelper = SharedPreferenceHelper(context)
FirebaseAuth.getInstance().signOut()
FirebaseInstanceId.getInstance().deleteInstanceId()
FirebaseInstanceId.getInstance().deleteToken("7398260350" , "FCM")
SharedPreferenceHelper(context).clearAll()
val intent = Intent(this, SignInActivity::class.java)
startActivity(intent)
finish()
} catch (e: Exception) {
Log.e("exception", "==->${e.message}")
}
}
我仍然在注销后收到通知。